2011-12-31 47 views
15

tôi có một tính năng mới trên trang web của mình cho phép người dùng nhận tệp vcard. tính năng này đọc dữ liệu từ cơ sở dữ liệu của tôi (cái này hoạt động) và tạo vcard.Hiển thị vcard php dưới dạng văn bản thuần túy

file là: vcard.php và tôi vượt qua id người dùng như GET

sau đó tôi nhận được tất cả các thông tin sử dụng mà id

vấn đề của tôi là khi tôi muốn nhận được vcard, nó hiển thị như bản văn. dưới đây là một phiên bản đơn giản của mã của tôi:

<?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(); 

mã hoạt động, tại sao nó không có dạng vcard?

Trả lời

18

Với http://en.wikipedia.org/wiki/VCard

Bạn chắc chắn cần phải thêm dòng sau đây trước khi echo $v->get();

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

để nói với trình duyệt của khách hàng mà nó sẽ nhận được một tập tin vCard.

+0

cảm ơn bạn nó hoạt động – goblar

Các vấn đề liên quan