二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。
二维码的优点:
1. 信息容量大
2. 编码范围大
3. 容错能力强
4. 译码可靠性高
5. 可引入加密措施
6. 成本低,易制作
缺点:
1. 二维码技术成为手机病毒、钓鱼网站传播的新渠道
2. 信息泄密
目前流行的三大国际标准:
PDF417:不支持中文
DM:专利未公开,需要付费使用
QR Code:专利公开,支持中文
QR Code 二维码相比其他二维码,具有识读速度快、数据密度大、占用空间小的优势,因此在国内大多采用 QR Code 来生成二维码。
其实 QR Code 生成二维码很简单,只需两步就可以生成一个二维码。
<?php //1、引入qrcode类文件 require_once 'phpqrcode/qrlib.php'; //2、调用 QRcode::png() 静态方法 QRcode::png('二维码的内容');
如果如何利用 QR Code 生成电子名片二维码呢?
QRcode::png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false)
QRcode::png() 静态方法有 6 个参数:
$text: 二维码的内容;
$outfile: 二维码保持路径,为false表示直接输出在浏览器,不保存为图片;
$level: 纠错能力等级(
QR_ECLEVEL_L:0 约可纠错 7% 的数码字
QR_ECLEVEL_M: 1 约可纠错 15% 的数码字
QR_ECLEVEL_Q: 2 约可纠错 25% 的数码字
QR_ECLEVEL_H: 3 约可纠错 30% 的数码字
)二维码的主要数据主要集中在二维码的 4 个角,因此利用这个纠错等级我们可以在二维码的中间放一张小图片也不会影响二维码的识别。同时还可以对二维码的外形进行修改,在不影响主体数据的情况下把二维码改成我们想要的形状。
$size:二维码图片的大小;
$margin:二维码图片的边距;
$saveandprint:是否保存并输出二维码;
下面来看看电子名片二维码的生成实例:
<?php require_once 'phpqrcode/qrlib.php'; $content = 'BEGIN:VCARD'."\n"; //开始标记 $content .= 'N:李'."\n"; //姓 $content .= 'FN:四'."\n"; //名 $content .= 'TEL;WORK;VOICE:020-1234567'."\n"; //工作电话 $content .= 'TEL;HOME;VOICE:020-4321123'."\n"; //家庭电话 $content .= 'TEL;TYPE=cell:13300001234'."\n"; //移动电话 $content .= 'EMAIL:1234567@qq.com'."\n"; //邮箱 $content .= 'ADR;TYPE=work;LABEL="Our Office":GUANGDONGGUANGZHOU'."\n"; //工作地址 $content .= 'ADR;TYPE=home;LABEL="My Home":HUNANCHENZHOU'."\n"; //家庭地址 $content .= 'ORG:XX有限公司'."\n"; //工作单位 $content .= 'END:VCARD'; //结束标记 QRcode::png($content);
生成的二维码结果:
【注意事项】
1、生成电子名片二维码时开始标记和结束标记不能少;
2、除了具体的个人信息可以修改,其他的内容和格式都不能改,否者就不能生成二维码。
3、每一项后面的‘"\n"’不能少,且必须用双引号。
4、虽然这里的地址我用的是大写拼音,但其实可以用中文的,因为 QR Code 是支持中文的。