У меня есть новая функция на моем сайте, которая позволяет пользователю получать файлы vcard. эта функция считывает данные из моей базы данных (что работает) и генерирует vcard.
файл: vcard.php, и я передаю идентификатор пользователя как GET
то я получаю всю информацию, используя этот идентификатор
моя проблема в том, когда я хочу получить vcard, он отображается как текст. вот упрощенная версия моего кода:
<?php class Vcard { public function __construct() { $this->props = array(); } public function setName($family, $first) { $name = $family . ';' . $first . ';'; $this->props['N'] = $name; if(!isset($this->props['FN'])) { $display = $first . ' '; $display .= $family; $this->props['FN'] = trim($name); } } /* and all the rest of my props */ public function get() { $text = 'BEGIN:VCARD' . "\r\n"; $text.= 'VERSION:2.1' . "\r\n"; foreach($this->props as $key => $value) { $text .= $key . ':' . $value . "\r\n"; } $text.= 'REV:' . date("Ymd") . chr(9) . date("H:i:s") . "\r\n"; $text.= 'MAILER:My VCard Generator' . "\r\n"; $text.= 'END:VCARD' . "\r\n"; return $text; } } $v = new Vcard(); $v->setName('Smith', 'John'); echo $v->get();
код работает, почему он не получает его как vcard?
Учитывая http://en.wikipedia.org/wiki/VCard
Вам обязательно нужно добавить следующую строку перед echo $v->get();
header('Content-Type: text/vcard');
чтобы сообщить браузеру клиента, что он получит файл VCard.