二維條碼/二維碼可以分為堆疊式/行排式二維條碼和矩陣式二維條碼。堆疊式/行排式二維條碼形態上是由多行短截的一維條碼堆疊而成;矩陣式二維條碼以矩陣的形式組成,在矩陣相應元素位置上用“點”表示二進制“1”,用“空”表示二進制“0”,“點”和“空”的排列組成代碼。
堆疊式/行排式二維條碼,如,Code 16K、Code 49、PDF417等。
矩陣式二維碼,最流行莫過於QR CODE。
矩陣式二維碼存儲的數據量更大;可以包含數字、字符,及中文文本等混合內容;有一定的容錯性(在部分損壞以後可以正常讀取);空間利用率高等。
代碼如下
<?php
$vname = 'test';
$vtel = '13800000000';
generateQRfromGoogle($vname,$vtel);
function generateQRfromGoogle($vname,$vtel,$widhtHeight ='150',$EC_level='L',$margin='0')
{
if($vname&&$vtel){
$chl = "BEGIN:VCARDnVERSION:3.0". //vcard頭信息
"nFN:$vname".
"nTEL:$vtel".
"nEND:VCARD"; //vcard尾信息
echo '<img src="http://chart.apis.google.com/chart?chs='.$widhtHeight.'x'.$widhtHeight.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.urlencode($chl).'" alt="QR code" widhtHeight="'.$size.'" widhtHeight="'.$size.'"/>';
}
}
?>
php生成網址二維碼:
代碼如下<?php
$url = "http://www.google.com.hk";
generateQRfromGoogle($url);
function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0')
{
echo '<img src="http://chart.apis.google.com/chart?chs='.$widhtHeight.'x'.$widhtHeight.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.urlencode($chl).'" alt="QR code" widhtHeight="'.$size.'" widhtHeight="'.$size.'"/>';
}
?>
例子
代碼如下 <?php如果想實現中間有logo的效果,需要通過另外一個logo小圖進行拼接即可。這裡只提供一種實現方法,也可以通過QRcode的方式進行生成。
vcode的標准信息可以參看維基百科 。
注:有些生成的圖片經掃描沒有的數據的原因是編碼導致的,該問題在windows下較常見,由於很多編輯器默認提供的是ANSI編碼,更改成utf8就OK了。