首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP QRCode 生成二维码

PHP QRCode 生成二维码

作者头像
泥豆芽儿 MT
发布2018-09-11 11:20:16
4K0
发布2018-09-11 11:20:16
举报

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1333703

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 //移动电话undefined ADR;HOME //家庭住址 EMAIL //邮箱 URL //网址
  • 代码中的具体代表名词,请参考 二维码名片的格式 - vcard

QR Code 生成效果如下:

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

4).PHP 识别二维码

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

IV、附录

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年08月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • I、概念拓展
    • 1).一维条码
      • 2).二维条码
      • II、QRCode(Quick Response Code)
        • 1).二维码标准
          • 2).QR Code 基本结构
            • 3).QR Code 纠错能力
            • III、代码实现
              • 1).php 生成QR Code
                • 2).jquery 生成 QR Code
                  • 3).PHP 生成电子名片
                    • 4).PHP 识别二维码
                    • IV、附录
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档