線性堆疊式二維碼
矩陣式二維碼
二維碼的優缺點優點信息容量大
編碼范圍廣
容錯能力強
譯碼可靠性高
可引入加密措施
成本低,易制作
缺點二維碼技術成為手機病毒、釣魚網站傳播的新渠道
信息泄密
目前流行的三大國際標準PDF417:不支持中文
DM:專利未公開,需支付專利費用
QR CODE:專利公開,支持中文
QR CODE 糾錯能力L級:約可糾錯7%的數據碼字
M級:約可糾錯15%的數據碼字
Q級:約可糾錯25%的數據碼字
H級:約可糾錯30%的數據碼字
前提條件GD庫
一、PHP生成QR CODE網址:http://phpqrcode.sourceforge.net/
下載源碼:https://github.com/endroid/qr-code
目錄結構
1、qrcode_create.php
ps:生成普通二維碼
?phpinclude_once ./qrcode/phpqrcode.php /** * 參數:p1:二維碼包含的內容 p2:輸出的文件名 p3:容錯級別 p4:大小 p5:外邊距margin p6:保存路徑 * 在瀏覽器上直接生成一個二維碼(內容為abc) */QRcode::png( abc QRcode::png( ABC ,false,QR_ECLEVEL_L,10,5,false);/** * 生成文件到本地 * 參數:p1:二維碼包含的內容 p2:輸出的文件名 p3:容錯級別 p4:大小 p5:外邊距margin p6:是否保存并打印(false 直接生成 true 生成且打印) * PS:$saveandprint源碼的p6參數做了修改 */QRcode::png( ABC , ABC.jpg ,QR_ECLEVEL_H,10,2,false);
2、qrcode_logo.php
ps:生成帶Logo的二維碼
?php * Created by PhpStorm. * User: user * Date: 2018/8/16 * Time: 10:43 */include ./qrcode/phpqrcode.php $txt = 測試內容 $picPathAndName = ./pic/ABC.jpg //二維碼保存路徑和名稱 $level = L $size = 5;$is_logo = 1;//是否包含Logo 0否 1是 $margin = 2;//邊距 $saveAndPrint = true;//是否保存,保存時,$picPathAndName設置為true//生成二維碼圖片 QRcode::png($txt, $picPathAndName, $level, $size, $margin,$saveAndPrint);if($is_logo == 1){ $QR = $picPathAndName; //已經生成的原始二維碼圖 $Logo = ./pic/logo.png $Logo_re = ./pic/test_logo.png $QR = imagecreatefromstring(file_get_contents($QR)); $Logo = imagecreatefromstring(file_get_contents($Logo)); $QR_width = imagesx($QR); //二維碼圖片寬度 $QR_height = imagesy($QR); //二維碼圖片高度 $logo_width = imagesx($Logo); //logo圖片寬度 $logo_height = imagesy($Logo); //logo圖片高度 $logo_qr_width = $QR_width / 5; $scale = $logo_width / $logo_qr_width; $logo_qr_height = $logo_height / $scale; $from_width = ($QR_width - $logo_qr_width) / 2; imagecopyresampled($QR, $Logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height); //輸出圖片 imagepng($QR, $Logo_re);}
3、qrcode_vcard.php (生成電子簽名)
vCard格式:https://zh.wikipedia.org/wiki/VCard
?php/** * Created by PhpStorm. * User: user * Date: 2018/8/15 * Time: 23:00 */require_once ./qrcode/phpqrcode.php /** * 生成電子簽名 * PS;使用微信掃描二維碼 */$content = BEGIN:VCARD . /n //起始標志 $content .= VERSION:2.1 . /n //當前版本 $content .= N:周 . /n //姓$content .= FN:勇 . /n //名 $content .= ORG:江蘇東大集成電路系統有限公司 . /n //公司名稱 $content .= TITLE:PHP研發程序員 . /n //職位 $content .= TEL;WORK;VOICE:0523-83623173 . /n //工作電話 $content .= ADR;WORK:;;高新區星火路#2;南京市;江蘇省;225762;中國 . /n //工作地址 $content .= ADR;HOME:;;下圩鎮王橫村178號;興化市;江蘇省;225762;中國 . /n //家庭地址(街道,地級市,省,郵編,國家) $content .= TEL;TYPE:18000001111 . /n //移動電話 $content .= EMAIL:[email protected] . /n //郵箱 $content .= URL:www.baidu.com . /n //個人主頁 $content .= END:VCARD . /n //結束標志 QRcode::png($content);二、JQUERY生成QR CODE
源碼地址:https://github.com/jeromeetienne/html' target='_blank'>jquery-qrcode
jquery_create.php
!DOCTYPE html html lang= en head meta charset= UTF-8 title Jquery生成二維碼 /title script src= /uploads/allimg/190503/0Z91K0a-1.jpg /script script type= text/javascript src= ./jquery-qrcode/jquery.qrcode.min.js /script /head body p id= qrcode /p script //$( #qrcode ).qrcode( this plugin is great $( #qrcode ).qrcode({width: 64,height: 64,text: jason }); /script /body /html三、PHP識別二維碼
1、方法一
環境需求,安裝如下擴展
- ImageMagick
- zbar
- php-zbarcode
2、方法二
PHP識別二維碼(無需安裝擴展),初步測試普通二維碼可以,帶Logo的二維碼,容錯級別需要設置高一點頁可以
qrReader類:https://github.com/baagee/php_QrReader
?phpinclude_once( ./qrReader/lib/QrReader.php $qrcode = new QrReader( ./test_logo.png //圖片路徑$text = $qrcode- text(); //返回識別后的文本echo $text;
鏈接:https://pan.baidu.com/s/1icpWRjIQiXdCXeOc52pNSg 密碼:c5y7
相關推薦:
php利用open,fwrite實現導出多種格式的文件(代碼)
php導出csv格式的Excel文件的實現代碼
以上就是PHP如何實現二維碼的生成以及識別(代碼)的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答