您的位置:首页 > 编程语言 > PHP开发

PHP QRCode 生成二维码

2017-08-03 17:54 295 查看

I、概念拓展

1).一维条码

一维条码,是由一组粗细不同、黑白(或彩色)相间的条、空及其相应的字符(数字字母)组成的标记,即传统条码。多见于产品包装,可供扫描的地方。



2).二维条码

二维条码,是用某种特定的几何图形按照一定规律在平面(二维方向)上分布的条、空相间的图形(或进行抽象变形后的效果显示)来记录数据符号信息的标记。



二维码分类 根据编码原理

线性堆叠式二维码

矩阵式二维码(又称棋盘式二维条码)

二维码的优缺点

优点

信息容量大、编码范围广、容错能力强、译码可靠性高、可引入加密措施、成本低易制作

缺点

二维码技术容易成为手机病毒、钓鱼网站传播的新渠道,信息泄密

II、QRCode(Quick Response Code)

1).二维码标准

目前流行的三大国际标准

PDF417 :不支持中文

DM : 专利未公开,需要支付专利费用

QR Code : 专利公开,支持中文

QR Code 比其他二维码相比,具有识读速度快、数据密度大、占用空间小的优势.

2).QR Code 基本结构



3).QR Code 纠错能力

L 级:约可纠错 7% 的数据码字

M 级:约可纠错 15% 的数据码字

Q 级:约可纠错 25% 的数据码字

H级:约可纠错 30% 的数据码字

III、代码实现

以下的代码实现,是基于ThinkPHP 3.2.3框架下的设计,但代码逻辑大同小异,代码已上传github,欢迎参考。

1).php 生成QR Code

代码实现比较简单,需要引入 phpqrcode.php 文件,然后调用 png()方法,可酌情注意该方法中各个字段的使用要求,从而更能符合自己的功能设计需求。



上述方法可直接访问对应的链接进行查看,为了符合html显示效果,自然也可以进行嵌入式的前端显示:

<img src="{:U('QrCode/qrCode')}">


链接显示效果显示如下,通过扫描即可获得其中的信息:



2).jquery 生成 QR Code

可以进入 jeromeetiennegithub 下载源文件.

也可以进入第三方托管库 bootcdn.cn 下载对应的jquery和qrcode文件.

对于第三方的文件,也可以下载一份部署到自己的服务器公共文件,以免对方网站服务影响访问。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<script src="__MJS__/jquery-1.8.0.min.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.2.1/core.js"></script>
<script src="https://cdn.bootcss.com/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>
<!--<script src="__MJS__/jquery.qrcode.min.js"></script>-->
<body>
<div id="qrcode"></div>
</body>
<script>
$("#qrcode").qrcode("Hello world");
$('#qrcode').qrcode({width: 64,height: 64,text: "Hello Baby"});
</script>
</html>


实现效果如图:



3).PHP 生成电子名片

首先,了解一下 vCard 的概念:



实现代码如下:

public function qrCode_vcard(){
vendor("phpqrcode.phpqrcode");
$content = 'BEGIN:VCARD'."\n";
$content.= 'VERSION: 1.3.1'."\n";
$content.= 'N: 毛球'."\n";
$content.= 'FN: 贝利斯'."\n";
$content.= 'TEL;WORK;VOICE: 18898989988'."\n";
$content.= 'TEL;HOME;VOICE: 17789889999'."\n";
$content.= 'ORG: 阿尔及利亚-安道尔'."\n";
$content.= 'URL: http:www.moTou.com'."\n";
$content.= 'END:VCARD'."\n";

\QRcode::png($content,false,QR_ECLEVEL_L,3,2);
}


简要介绍代表名词:

N //姓

FN //名

ORG //公司地址

TEL;WORK;VOICE //工作单位电话

TEL;HOME;VOICE //家里电话

TEL;TYPE=cell //移动电话

ADR;HOME //家庭住址

EMAIL //邮箱

URL //网址

代码中的具体代表名词,请参考 二维码名片的格式 - vcard

QR Code 生成效果如下:



微信进行扫描后,可以得到下面的结果.



4).PHP 识别二维码

该功能个人觉得整理过于繁杂,但值得学习,建议参考附录视频,希望能帮助小猿们学到一丝有趣的东西。

IV、附录

二维码(QR code)基本结构及生成原理

参考视频链接

源代码下载>>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: