PHP QRCode 生成二维码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/76640540

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、附录

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏灯塔大数据

每周学点大数据 | No.77 众包算法实践——成为众包工人

编者按:灯塔大数据将每周持续推出《从零开始学大数据算法》的连载,本书为哈尔滨工业大学著名教授王宏志老师的扛鼎力作,以对话的形式深入浅出的从何为大数据说到大数据算...

508110
来自专栏数据小魔方

R语言学习笔记之——多进程与并行处理包parallel

上一篇中,主要介绍了使用foreach包来在R语言环境中实现任务的并行处理,其实在R语言中还有另外一个多进程包同样可以完成多进程任务,那就是parallel包,...

34180
来自专栏吉浦迅科技

DAY28:阅读如何计算Occupancy

18640
来自专栏AI研习社

深度学习训练时 GPU 温度过高?几行命令就可迅速降温!

新买回来的不带水冷公版GPU,在满负载运行的时候,温度从室温马上飙升到85度,而且模型训练不是几分钟完事,很有可能要长期保持在高温状态下运行,让如此昂贵的GPU...

39940
来自专栏恰童鞋骚年

操作系统核心原理-6.外存管理(上)磁盘基础

  计算机是处理数据的机器,而数据就需要有地方存放。在计算机中,可供数据存放的地方并不太多,除了内存之外,最主要的存储数据的媒介就是磁盘。对于大多数计算机领域的...

17310
来自专栏贾老师の博客

游戏中的网络同步

36340
来自专栏大数据

UC Berkeley提出新型分布式执行框架Ray:有望取代Spark

译者|马卓奇 编辑|Natalie AI 前线导读:下一代人工智能应用程序需要不断地与环境交互,并从这些交互中学习。这对系统的性能和灵活性提出了新的要求,而现有...

46980
来自专栏人工智能LeadAI

深度学习训练时GPU温度过高?几个命令,为你的GPU迅速降温。

新买回来的不带水冷公版GPU,在满负载运行的时候,温度从室温马上飙升到85度,而且模型训练不是几分钟完事,很有可能要长期保持在高温状态下运行,让如此昂贵的GPU...

89670
来自专栏北京马哥教育

知乎美女挖掘指南--Python实现自动化图片抓取、颜值评分

声明:文中所有文字、图片以及相关外链中直接或间接、明示或暗示涉及性别、颜值分数等信息全部由相关人脸检测接口给出。无任何客观性,仅供参考。 1 数据源 知乎 话题...

54960
来自专栏工科狗和生物喵

《实时软件控制设计》MATLAB-PIL测试报告基于Qemu Cortex-M 3的环境

正文之前 首先,跟助教说声抱歉,我们组因为一些因素没有按时完成PIL的测试,还要申请延期。另外也感谢助教的催促,让我们能够在今天下午就完成PIL测试,也算是为本...

44780

扫码关注云+社区

领取腾讯云代金券