掃描後可直接存入手機通訊錄的 QR Code 需符合 vCard 3.0 規範:
BEGIN:VCARD VERSION:3.0 FN:張三 TEL;TYPE=CELL:13800000000 EMAIL:zhangsan@example.com ORG:範例公司 TITLE:工程師 END:VCARD
<?php
function generateVCardQR($name, $phone, $email='', $org='', $title='', $size=150)
{
$vcard = "BEGIN:VCARD\nVERSION:3.0\nFN:$name\nTEL:$phone";
if ($email) $vcard .= "\nEMAIL:$email";
if ($org) $vcard .= "\nORG:$org";
if ($title) $vcard .= "\nTITLE:$title";
$vcard .= "\nEND:VCARD";
$url = 'https://chart.googleapis.com/chart?chs='.$size.'x'.$size.'&cht=qr&chl='.urlencode($vcard).'&choe=UTF-8';
return "<img src='$url' alt='QR Code' />";
}
// 使用範例
echo generateVCardQR('李四', '13900000000', 'lisi@test.com', '測試科技', '研發工程師');
?>
<?php
function generateUrlQR($url, $size=150)
{
$qrUrl = 'https://chart.googleapis.com/chart?chs='.$size.'x'.$size.'&cht=qr&chl='.urlencode($url);
return "<img src='$qrUrl' alt='QR Code' />";
}
echo generateUrlQR('https://www.example.com');
?>
endroid/qrcode、bacon/bacon-qr-code)或 phpqrcode。urlencode() 處理。