2011-12-31 7 views
15

私は自分のサイトでvcardファイルを入手できる新しい機能を持っています。この機能は私のデータベース(これが動作する)からデータを読み取り、vcardを生成します。 vcard.phpは、その後、私はvCardのを取得したいときphp vcardをプレーンテキストとして表示

私の問題は、IDを使用して、すべての情報を取得

をGETとして私はそれのように表示し、ユーザIDを渡します。

ファイルがありますテキスト。ここに私のコードの簡略化されたバージョンがあります:

<?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("Y-m-d") . 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として取得されないのですか?

答えて

18

考えるhttp://en.wikipedia.org/wiki/VCard

あなたは確かにそれは、vCardファイルを受信するクライアントのブラウザを伝えるためにecho $v->get();

header('Content-Type: text/vcard'); 

前に次の行を追加する必要があります。

+0

ありがとうございます – goblar

関連する問題