PHP - 22. Juni 2016

VCard .vcf mit Sonderzeichen für Mac und Windows in PHP erstellen

Die Erstellung einer VCard durch PHP ist denkbar einfach. Komplizierter wird es jedoch, wenn diese Sonderzeichen wie Umlaute enthält und unter Mac und Windows geöffnet werden soll.

Hier ein kleines Script welches als UTF-8 gespeichert diese Aufgabe erfüllt:

<?php // Beispiel Werte $title = utf8_decode('Dr.'); $firstname = utf8_decode('Vörnäme'); $surname = utf8_decode('Nachnäme'); $fullname = $title . ' ' . $firstname . ' ' . $surname; $organisation = utf8_decode('Üäöß GmbH'); $street = utf8_decode('Straße am öäü 123'); $zipcode = utf8_decode('01234'); $city = utf8_decode('Münster'); $phone = utf8_decode('+49(123)456789-0'); $email = utf8_decode('mail@domain.tld'); $web = utf8_decode('http://www.url.de/'); // Zusammenstellung für VCard $content = array( 'BEGIN:VCARD', 'VERSION:3.0', 'N;CHARSET=Windows-1252:' . $surname . ';' . $firstname . ';;' . $title . ';', 'FN;CHARSET=Windows-1252:' . $fullname, 'ORG;CHARSET=Windows-1252:' . $organisation, 'TEL;TYPE=WORK;VOICE:' . $phone, 'ADR;WORK;PREF;CHARSET=Windows-1252:;;' . $street . ';' . $city . ';;' . $zipcode . ';', 'URL:' . $web, 'EMAIL;TYPE=PREF,INTERNET:' . $email, 'REV:' . date('Y-m-d\TH:i:s\Z'), 'END:VCARD' ); $content = implode("\r\n", $content); // Richtigen Header & Content senden header('Content-Type: text/x-vcard'); header('Content-disposition: attachment; filename=Visitenkarte.vcf'); header('Content-Length: ' . strlen($content)); echo $content;
Artikel teilen
Über den Autor

Pierre Geyer. Apple Fan Boy und leidenschaftlicher Softwareentwickler. Als Inhaber kommt er zwar nicht mehr so oft zum Programmieren, aber er liebt es dennoch sich alle neuen Webtechnologien anzusehen. Sein tiefes Verständnis von IT und Digitalisierung nutzt er, um Kunden zu beraten und individuelle Lösungen zu erarbeiten.