PHP生成二维码与识别二维码
二维码的分类
- 线性堆叠式二维码
- 矩阵式二维码
二维码的优缺点
优点
- 信息容量大
- 编码范围广
- 容错能力强
- 译码可靠性高
- 可引入加密措施
- 成本低,易制作
缺点
- 二维码技术成为手机病毒、钓鱼网站传播的新渠道
- 信息泄密
目前流行的三大国际标准
- PDF417:不支持中文
- DM:专利未公开,需支付专利费用
- QR CODE:专利公开,支持中文
QR CODE 纠错能力
- L级:约可纠错7%的数据码字
- M级:约可纠错15%的数据码字
- Q级:约可纠错25%的数据码字
- H级:约可纠错30%的数据码字
前提条件
- GD库
一、PHP生成QR CODE
- 官网:http://phpqrcode.sourceforge.net/
- 下载源码:https://github.com/endroid/qr-code
目录结构
1、qrcode_create.php
ps:生成普通二维码
<?php
include_once "./qrcode/phpqrcode.php";/*** 参数:p1:二维码包含的内容 p2:输出的文件名 p3:容错级别 p4:大小 p5:外边距margin p6:保存路径* 在浏览器上直接生成一个二维码(内容为abc)*/
QRcode::png("abc");
QRcode::png("ABC",false,QR_ECLEVEL_L,10,5,false);/*** 生成文件到本地* 参数:p1:二维码包含的内容 p2:输出的文件名 p3:容错级别 p4:大小 p5:外边距margin p6:是否保存并打印(false 直接生成 true 生成且打印)* PS:$saveandprint源码的p6参数做了修改*/QRcode::png("ABC","ABC.jpg",QR_ECLEVEL_H,10,2,false);
2、qrcode_logo.php
ps:生成带Logo的二维码
<?php
/*** Created by PhpStorm.* User: user* Date: 2018/8/16* Time: 10:43*/
include "./qrcode/phpqrcode.php";
$txt = "测试内容";
$picPathAndName = "./pic/ABC.jpg";//二维码保存路径和名称
$level = 'L';
$size = 5;
$is_logo = 1;//是否包含Logo 0否 1是
$margin = 2;//边距
$saveAndPrint = true;//是否保存,保存时,$picPathAndName设置为true//生成二维码图片QRcode::png($txt, $picPathAndName, $level, $size, $margin,$saveAndPrint);if($is_logo == 1){$QR = $picPathAndName; //已经生成的原始二维码图$Logo = './pic/logo.png';$Logo_re = './pic/test_logo.png';$QR = imagecreatefromstring(file_get_contents($QR));$Logo = imagecreatefromstring(file_get_contents($Logo));$QR_width = imagesx($QR); //二维码图片宽度$QR_height = imagesy($QR); //二维码图片高度$logo_width = imagesx($Logo); //logo图片宽度$logo_height = imagesy($Logo); //logo图片高度$logo_qr_width = $QR_width / 5;$scale = $logo_width / $logo_qr_width;$logo_qr_height = $logo_height / $scale;$from_width = ($QR_width - $logo_qr_width) / 2;imagecopyresampled($QR, $Logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);//输出图片imagepng($QR, $Logo_re);
}
3、qrcode_vcard.php (生成电子签名)
- vCard格式:https://zh.wikipedia.org/wiki/VCard
<?php
/*** Created by PhpStorm.* User: user* Date: 2018/8/15* Time: 23:00*/
require_once "./qrcode/phpqrcode.php";/*** 生成电子签名* PS;使用微信扫描二维码*/
$content = 'BEGIN:VCARD' . "\n";//起始标志
$content .= 'VERSION:2.1' . "\n";//当前版本
$content .= 'N:周' . "\n";//姓
$content .= 'FN:勇' . "\n";//名
$content .= 'ORG:江苏东大集成电路系统有限公司' . "\n";//公司名称
$content .= 'TITLE:PHP研发程序员' . "\n";//职位
$content .= 'TEL;WORK;VOICE:0523-83623173' . "\n";//工作电话
$content .= 'ADR;WORK:;;高新区星火路#2;南京市;江苏省;225762;中国' . "\n";//工作地址
$content .= 'ADR;HOME:;;下圩镇王横村178号;兴化市;江苏省;225762;中国' . "\n";//家庭地址(街道,地级市,省,邮编,国家)
$content .= 'TEL;TYPE:18000001111' . "\n";//移动电话
$content .= 'EMAIL:123456@qq.com' . "\n";//邮箱
$content .= 'URL:www.baidu.com' . "\n";//个人主页
$content .= 'END:VCARD' . "\n";//结束标志
QRcode::png($content);
二、JQUERY生成QR CODE
- 源码地址:https://github.com/jeromeetienne/jquery-qrcode
jquery_create.php
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Jquery生成二维码</title><script src="https://code.jquery.com/jquery-3.3.1.min.js"></script><script type="text/javascript" src="./jquery-qrcode/jquery.qrcode.min.js"></script>
</head>
<body>
<div id="qrcode"></div>
<script>//$('#qrcode').qrcode("this plugin is great");$('#qrcode').qrcode({width: 64,height: 64,text: "jason"});
</script>
</body>
</html>
三、PHP识别二维码
1、方法一
环境需求,安装如下扩展
- ImageMagick
- zbar
- php-zbarcode
2、方法二
PHP识别二维码(无需安装扩展),初步测试普通二维码可以,带Logo的二维码,容错级别需要设置高一点页可以
qrReader类:https://github.com/baagee/php_QrReader
<?php
include_once('./qrReader/lib/QrReader.php');
$qrcode = new QrReader('./test_logo.png'); //图片路径
$text = $qrcode->text(); //返回识别后的文本
echo $text;
链接:https://pan.baidu.com/s/1icpWRjIQiXdCXeOc52pNSg 密码:c5y7
PHP生成二维码与识别二维码相关推荐
- Android利用zxing生成二维码,识别二维码,中间填充图片超详细、超简易教程
gayhub上的zxing可用于生成二维码,识别二维码 gayhub地址:https://github.com/zxing/zxing 此文只是简易教程,文末附有完整代码和demo下载地址,进入正题: ...
- 生成二维码、识别二维码的工具类
笔者日常: 第一次用markdown写文章,有点手生~ 声明: 此工具类由本人二次整理改造后分享给大家,原编写者未知,虽然本人重写了大部分逻辑代码,但是核心部分仍然是采用的原来的代码.若涉及侵权问题, ...
- C#_WPF中创建二维码、识别二维码
C#_WPF中创建二维码.识别二维码 原文: C#_WPF中创建二维码.识别二维码 第三方库: WPFMediaKit.dll (WPFMediaKit摄像头处理) zing.dll NuGet安装这 ...
- Flutter - 生成二维码与识别二维码
#生成二维码 ##首先需要在pubspec.yaml:中添加 qr_flutter: ^1.1.3 其次,引入代码: import 'package:qr_flutter/qr_flutter.dar ...
- 通过二维码图片识别二维码内容方法
示例代码功能见-识别二维码工具 反解析二维码工具 识别条码工具 反解析条码工具http://sberwm.gsjlw.com/ 可以通过读取图片中的信息,来逆向识别二维码的内容, 主要使用了ZBarC ...
- Java中识别二维码并且提高二维码的识别率
我们在Java开发的时候,发现对二维码的识别是不足的.所以我们需要提高识别率. 第一步.识别图片二维码.准备相应的jar包.我们在gradle+idea中开发. compile group: 'com ...
- Qt利用QZXing和QRenCode识别二维码和制作二维码
制作二维码和识别二维码需要用到第三方库,制作需要用到QRenCode这个库,如果没 有的,大家可以在官网下载,或者去这个网址直接下载我编译好的两个库和头文件 [https://download.csd ...
- Android利用zxing用相机扫描识别二维码(添加闪光灯和本地二维码)超详细教程
之前写了怎么用zxing的jar包进行简单的识别和生成二维码,以及生成带图片的二维码. 接下来单独说说怎么用相机扫描二维码,用相机扫描二维码相对于前面的生成二维码,识别二维码来说要麻烦一点,网上的教程 ...
- android扫码二维码识别二维码
1. 快速集成扫码二维码,识别二维码功能.经过加工处理优化的,直接返回扫码结果字符串和图片的bitmap数据. 直接上代码: package com.xinxinchelian.myscanzxing ...
- uniapp 微信小程序长按识别二维码,跳转小程序、个人微信
前言: 业务要求是小程序放一个二维码图片,长按可以识别二维码,进而识别出个人微信,添加个人微信:我们可以通过uni.previewImage(OBJECT)或者wx.previewImage(Obje ...
最新文章
- SpringBoot解决cors跨域问题
- Django(part42)--限制IP请求次数
- linux在A目录下创建B文件,Linux课程---5、常用文件命令和目录命令(创建文件命令)...
- C#穿透session隔离———Windows服务启动UI交互程序
- 据说,很多搞科研的硕博生,都容易产生以下20个错觉,看看你中了几枪?
- 一些oracle基础
- Flowable入门系列文章187 - 高并发性的UUID ID生成器和多租户
- 数据分析可视化图表mysql_50个最有价值的数据可视化图表
- w10连接远程计算机控制,Win10远程桌面连接如何开启,3种方式助你远程控制
- 看中国魅力女强人 访格力电器总裁董明珠
- 【verilog】按键消抖(FPGA,低电平有效按键,状态机法)
- 春节快过腻了?不妨关心下太空探索
- 支付宝小程序财富号基金相关页面之间相关跳转
- 怎样使用计算机函数求出等级,巧用Excel函数出练习题
- 亚马逊、Facebook在印度遭遇的最大阻力竟是中国!
- 瑜岿科技综合能源管理系统助力企业节能降耗工作
- 深入了解示波器(九):示波器的XY时间模式
- 【HTML】2022国庆假期 HTML学习笔记
- Qt开发之中国象棋篇(四):棋子移动(上)
- [转载]三大WEB服务器软件比较(Apache ,Lighttpd,Nginx)对比分析
热门文章
- python 两个nc文件 风场,ECMWF 不同step 的 NC 文件如何合并
- 关于ACM竞赛的题型分析
- ArcGIS重分类之后统计各类别面积
- 推荐一款免费开源的javascript电子表格:x-sheet
- 配置管理基本概念、配置管理计划、配置管理主要活动
- 应用密码学:协议、算法与C源程序(学习第二章)
- H3CSE园区-SSH
- python工厂模式和单例模式_python之单例模式和工厂模式
- MMD-MikuMikuDance简易教程(包含软件、资源下载、MME特效中文说明、等等)
- 什么软件能做英语测试卷听力,英语听力app哪个好用-什么英语听力软件最好