2011-12-31 23 views
15

tengo una nueva función en mi sitio que permite al usuario obtener archivos vcard. esta característica lee datos de mi base de datos (que esta funciona) y genera la vcard.pantalla vp php como texto sin formato

el archivo es: vcard.php y paso el ID de usuario como GET

entonces consigo toda la información que el uso de Identificación del

mi problema es cuando quiero conseguir la vCard, que se muestran como texto. Aquí hay una versión simplificada de mi código: trabaja

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

el código, por lo que no lo entiende como vCard?

Respuesta

18

Dada http://en.wikipedia.org/wiki/VCard

Por supuesto que hay que añadir la siguiente línea antes de echo $v->get();

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

con el fin de indicarle al navegador del cliente que va a recibir un archivo vCard.

+0

gracias funciona – goblar

Cuestiones relacionadas