vCard - Zeilenumbrüche?

unrealzero_php

Erfahrenes Mitglied
Hallo zusammen

hab mir ein kleines Script geschrieben um vCards aus Datenbank-Einträgen zu erstellen.

Dies funktioniert soweit auch sehr gut. Nur MS Entourage akzeptiert diese vCards nicht. Eine Möglichkeit könnte sein, dass die ganzen Daten als String, also ohne Zeilenumbrüche ausgegeben werden. Wie wäre es möglich, Nach jeder Zeile einen Zeilenumbruch auszugenben

PHP:
 $qry_res = mysql_query("SELECT vorname,name,strasse,plz,ort,geb_tag,geb_monat,geb_jahr,tel,mobile,email FROM tbl_user WHERE id = $id");
while($dsatz = mysql_fetch_assoc($qry_res))
{
$vorname = $dsatz["vorname"];
$name = $dsatz["name"];
$strasse = $dsatz["strasse"];
$plz = $dsatz["plz"];
$ort = $dsatz["ort"];
$tel = $dsatz["tel"];
$tag = $dsatz["geb_tag"];
$monat = $dsatz["geb_monat"];
$jahr = $dsatz["geb_jahr"];
$mobile = $dsatz["mobile"];
$email = $dsatz["email"];
 
$tag = str_pad($tag, 2, 0, STR_PAD_LEFT);
$monat = str_pad($monat, 2, 0, STR_PAD_LEFT);
}
?>
<?php
header("Content-type: text/x-vCard");
header("Content-Disposition: attachment; filename=$vorname$name.vcf");
?>
<?php
echo "
BEGIN:VCARD
VERSION:2.1
N:$name;$vorname
FN:$vorname $name
TEL;HOME;VOICE:$tel
TEL;CELL;VOICE:$mobile
ADR;HOME:;;$strasse;$ort;;$plz;Schweiz
LABEL;HOME;ENCODING=QUOTED-PRINTABLE:$strasse=0D=0A$ort $plz=0D=0ASchweiz
BDAY:$jahr$monat$tag
EMAIL;PREF;INTERNET:$email
REV:20050616T160415Z
END:VCARD";
?>
 
Moritz123 hat gesagt.:
Füge einfach hinter jeder Zeile ein "\n" ein, dann wird der Text innerhalb des "echo"s umgebrochen.

Das hab ich leider schon ausprobiert - ohne Erfolg. Liegt wahrscheindlich daran, dass im Header ein anderer Content-Type gewählt ist.

Hast du sonst noch eine Idee?
 
Moritz123 hat gesagt.:
Nimm mal als Content-Type statt "text/x-vCard" einfach "text/plain" - vielleicht gehts damit...

hab das Ganze etwas umgeschrieben. Jetzt funktionierts:
PHP:
<?php
 header("Content-type: text/x-vCard");
  header("Content-Disposition: attachment; filename=$vorname$name.vcf");
?>
<?php
 echo "
BEGIN:VCARD\n
VERSION:2.1\n
FN;CHARSET=ISO-8859-1:$vorname $name
N;CHARSET=ISO-8859-1:$name;$vorname
TEL;TYPE=VOICE,HOME;CHARSET=ISO-8859-1:$tel
TEL;TYPE=VOICE,CELL;CHARSET=ISO-8859-1:$mobile
ADR;TYPE=HOME;CHARSET=ISO-8859-1:;;$strasse;$ort;;$plz;Schweiz
BDAY;CHARSET=ISO-8859-1:$jahr$monat$tag
EMAIL;TYPE=INTERNET;TYPE=PREF;TYPE=HOME;CHARSET=ISO-8859-1:$email
END:VCARD";
?>
 
Zurück