2017-01-20 4 views
0

저는 vCard를 생성하는 가장 좋은 방법이 무엇인지 궁금합니다. 내 서버에 저장할 필요가 없습니다. 사용자가 다운로드하려고 할 때 생성하십시오. 아래의 코드는 작동하지만, 나에게는 서투른 것처럼 보인다. 더 좋은 방법이 있는가?동적으로 vCard를 생성하십시오

<?php 
function raf_create_vcard(){ 
$format_name = utf8_encode($name); 
$format_email = utf8_encode($email); 
$format_tel = utf8_encode($tel); 
$format_fax = utf8_encode($fax); 
$format_www = utf8_encode($www); 
$format_address = utf8_encode($address); 

return 'BEGIN%3AVCARD%0D%0AVERSION%3A4.0%0D%0AN%3A%3B'.$format_name.'%3B%3B%3B%0D%0AFN%3A'.$format_name.'%0D%0AEMAIL%3A'.$format_email.'%0D%0AORG%3A'.$format_name.'%0D%0ATEL%3A'.$format_tel.'%0D%0ATEL%3Btype%3DFAX%3A'.$format_fax.'%0D%0AURL%3Btype%3Dpref%3A'.$format_www.'%0D%0AADR%3A%3B'.$format_address.'%3B%3B%3B%3B%3BSpain%0D%0AEND%3AVCARD'; 
} 
?> 

생성 링크 :

<a href="data:text/plain;charset=UTF-8,<?php echo raf_create_vcard(); ?>" download="contact.vcf">Download</a> 

답변

0

라이브러리없이 당신이 그런 식으로 쓸 수 :

function raf_create_vcard(){ 
    return utf8_encode('BEGIN:VCARD 
     VERSION:4.0 
     N:;'.$name.';;; 
     FN:'.$name.' 
     EMAIL:'.$email.' 
     ORG:'.$name.' 
     TEL:'.$tel.' 
     TEL;type=FAX:'.$fax.' 
     URL;type=PREF:'.$www.' 
     ADR:;'.$address.';;;;;Spain 
     END:VCARD'); 
} 

하지만 당신은 그 목적을 위해 PHP 라이브러리를 사용합니다. 이것 좀 봐 : https://github.com/jeroendesloovere/vcard.

use JeroenDesloovere\VCard\VCard; 

$vcard = new VCard(); 

$vcard->addName($name); 
$vcard->addCompany($name); 
$vcard->addEmail($email); 
$vcard->addPhoneNumber($tel); 
$vcard->addPhoneNumber($fax, 'FAX'); 
$vcard->addURL($www, 'PREF'); 
$vcard->addAddress($address, null, null, null, null, null, 'Spain'); 

$vcardAsString = $vcard->getOutput(); 
관련 문제