PHP QRCode生成二维码
二维条码/二维码(2-dimensionalbarcode)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念。一维条码/条形码是由一组粗细不同、黑白(或彩色)相间的条、空及其相应的字符(数字字母)组成的标记,即传统条码。二维条码是用某种特定的几何图形按一定规律在平面(二位方向)上分布
1.二维码概述
二维条码/二维码(2-dimensional bar
code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念。一维条码/条形码:是由一组粗细不同、黑白(或彩色)相间的条、空及其相应的字符(数字字母)组成的标记,即传统条码。
二维条码是用某种特定的几何图形按一定规律在平面(二位方向)上分布的条、空相间的图形来记录数据符号信息。
2.二维码的分类
根据编码原理:
- 先行堆叠式二维码:堆叠式/行排式二维条码其编码原理是建立在一维条码基础上,按需要堆积成二行或多行。
- 矩阵式二维码:矩阵式二维条码(又称棋盘式二维条码)是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示为二进制的“0”
3.二维码的优缺点
优点:
- 信息容量大;
- 编码范围广;
- 容错能力强;(部分缺失不影响功能)
- 驿马可靠性高;
- 可引入加密措施;
- 成本低,易制作 缺点:
- 二维码技术成为手机病毒、钓鱼网站传播的新渠道;
- 信息泄密;
4.OR Code介绍
目前留下的三大国际标准:
- PDF417:不支持中文;
- DM:专利未公开,需支付专利费用;
- QR Code:专利公开,支持中文 与其他二维码相比,具有识读速度快、数据密度大、占用空间小等优势。 Quick Response Code。
纠错能力(二维码被破坏时,依然可以保持数据的完整性):
- L级:约可纠错7%的数据码字;
- M级:约可纠错15%的数据码字;
- Q级:约可纠错25%的数据码字;
- H级:约可纠错30%的数据码字
5 php 生成QR Code
-
下载phpqrcode源码:https://sourceforge.net/projects/phpqrcode/files/latest/download
-
解压后复制到项目文件夹
-
编写代码
<?php
include_once 'phpqrcode/qrlib.php';
/**
* png函数的参数:
* $text:保存的文本内容;
* $outfile:是否输出为文件,默认false
* $level:纠错能力级别
* $size:大小
* $margin:边距
* $saveandprint:是否保存并打印,默认false
*/
//QRCode::png('abc');
QRCode::png('abc1', 'abc1.jpg'); // 浏览器不输出,保存为图片
//QRCode::png('abc', false, QR_ECLEVEL_L, 10, 0);
QRCode::png('abc2', 'abc_2.jpg', QR_ECLEVEL_L, 10, 0, true);
abc1.jpg
abc_2.jpg
Alt+鼠标左键,点击"png”进入png函数的源码,就会发现这里有bug,设置了saveandprint的值固定是false,而没有接收传进来的值,导致无法打印并保存。这里只需要把“=false”去掉即可。
6. jquery生成QR Code
-
下载jquery-qrcode:https://gitee.com/mlnt/jquery-qrcode
-
解压后复制到项目文件夹
-
编写html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>qrcode</title>
</head>
<body>
<div id="qrcode"></div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="jquery-qrcode-master/jquery.qrcode.min.js"></script>
<script type="text/javascript">
$('#qrcode').qrcode("Hello world");
$('#qrcode').qrcode({width: 64, height: 64, text: "This is a test."});
</script>
</body>
</html>
7. php生成电子名片
<?php
// php 生成电子名片
include_once './phpqrcode/qrlib.php';
/**
* N:姓
* FN:名
* ORG:公司地址
* TEL;WORK;VOICE:工作单位电话
* TEL;HOME;VOICE:家里电话
* TEL;TYPE=cell:移动电话
* ADR;HOME:家庭地址
* EMAIL:邮箱
* URL:网址
*
*/
$content = 'BEGIN:VCARD'."\n";
$content .= 'VERSION:2.1'."\n";
$content .= 'N:张'."\n";
$content .= 'FN:三'."\n";
$content .= 'END:VCARD'."\n";
QRcode::png($content);
扫码结果:
<?php
// php 生成电子名片
include_once './phpqrcode/qrlib.php';
/**
* N:姓
* FN:名
* ORG:公司地址
* TEL;WORK;VOICE:工作单位电话
* TEL;HOME;VOICE:家里电话
* TEL;TYPE=cell:移动电话
* ADR;HOME:家庭地址
* EMAIL:邮箱
* URL:网址
*
*/
$content = 'BEGIN:VCARD'."\n";
$content .= 'VERSION:2.1'."\n";
$content .= 'N:张'."\n"; // 姓
$content .= 'FN:三'."\n"; // 名
$content .= 'NICKNAME:法外狂徒'."\n"; // 别名
$content .= 'BDAY:1997-07-01'."\n"; // 生日
$content .= "NOTE:人一定要有梦想,有了梦想,你才能是一个真正有梦想的人。"."\n"; // 备注
$content .= 'ORG:中国刑法之光研究所'."\n"; // 公司地址
$content .= 'TITLE:项目经理'."\n"; // 头衔
$content .= 'TEL;WORK;VOICE:123321666'."\n"; // 工作单位电话
$content .= 'TEL;HOME;VOICE:134502404'."\n"; // 家里电话
$content .= 'TEL;TYPE=cell:143666888'."\n"; // 移动电话
$content .= 'ADR;HOME:;;法外大道404号;北城区;哥谭市;438384;中国'."\n"; // 家庭住址
$content .= 'EMAIL:zs@163.com'."\n"; // 邮箱
$content .= 'END:VCARD'."\n";
QRcode::png($content);
扫描结果:
参考文章:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)