PHP二维码的生成与识别案例

二维码的分类

  • 线性堆叠式二维码
  • 矩阵式二维码

二维码的优缺点

优点

  • 信息容量大
  • 编码范围广
  • 容错能力强
  • 译码可靠性高
  • 可引入加密措施
  • 成本低,易制作

缺点

  • 二维码技术成为手机病毒、钓鱼网站传播的新渠道
  • 信息泄密

目前流行的三大国际标准

  • PDF417:不支持中文
  • DM:专利未公开,需支付专利费用
  • QR CODE:专利公开,支持中文

QR CODE 纠错能力

  • L级:约可纠错7%的数据码字
  • M级:约可纠错15%的数据码字
  • Q级:约可纠错25%的数据码字
  • H级:约可纠错30%的数据码字

前提条件

GD库

一、PHP生成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 (生成电子签名)

<?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二维码的生成与识别案例的文章就介绍到这了,更多相关PHP二维码生成与识别内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • PHP基于phpqrcode类库生成二维码过程解析

    phpqrcode类库官网下载地址: https://sourceforge.net/projects/phpqrcode/ 1.我们先看看php是怎么生成二维码的 1.首先我们先下载一下 phpqrcode 类库. 2.下载完后解压我们会发现 phpqrcode文件夹 里面有一堆的文件,但是我们只需要找到 phpqrcode.php文件复制, 跟 index.php 文件放在一起即可,而 index.php 就是你生成二维码的php代码. 3.接下来就是代码环节了,复制以下代码黏贴到php文件

  • thinkphp3.2框架集成QRcode生成二维码的方法分析

    本文实例讲述了thinkphp3.2框架集成QRcode生成二维码的方法.分享给大家供大家参考,具体如下: 一.下载QRcode源代码 https://sourceforge.net/projects/phpqrcode/files/releases/ 使用phpqrcode必须开启GD2扩展,phpqrcode提供了一个png()方法,通过该方法,我们可以生成自已需要的二维码.该函数定义如下: public static function png( $text, $outfile = fals

  • PHP实现一个二维码同时支持支付宝和微信支付的示例

    实现思路 生成一个二维码,加入要处理的url连接 在用户扫完码后,在对应的脚本中,判断扫码终端,调用相应的支付 若能够扫码之后能唤起相应app,支付宝要用手机网站支付方式,微信要使用jsapi支付方式 效果展示 提示: 因为项目即将上线,所以上面的支付二维码连接被我替换了(注意在生成二维码时加入的连接,要带上http协议) 实现 步骤生成二维码 //我的url指向了checkTerrace方法 $url = self::ADMIN_URL . 'params=' . $params; //ADM

  • PHP生成二维码与识别二维码的方法详解【附源码下载】

    本文实例讲述了PHP生成二维码与识别二维码的方法.分享给大家供大家参考,具体如下: 二维码的分类 线性堆叠式二维码 矩阵式二维码 二维码的优缺点 优点 信息容量大 编码范围广 容错能力强 译码可靠性高 可引入加密措施 成本低,易制作 缺点 二维码技术成为手机病毒.钓鱼网站传播的新渠道 信息泄密 目前流行的三大国际标准 PDF417:不支持中文 DM:专利未公开,需支付专利费用 QR CODE:专利公开,支持中文 QR CODE 纠错能力 L级:约可纠错7%的数据码字 M级:约可纠错15%的数据码

  • php生成二维码不保存服务器还有下载功能的实现代码

    有个大坑:在phpqrcode类里QRimage::png会重新定义header为header('content-type : img/png') 此header头解析不了html代码,所以在返回完后直接是一张二维码别的代码起不了任何作用,所以要返回完之后再重新声明一下header为header('Content-Type:text/html;charset=utf-8');,我在下边代码中声名过了,标红的就是 1.引入phpqrcode类(php操作二维码类) 2.调用encodePNG方法

  • php+laravel 扫码二维码签到功能

    简介 为满足公司签到业务场景 最终敲定使用微信二维码来实现 微信公众号相关配置 在微信公众平台登陆上去后,点开开发中的基本配置看到的基本信息 框架及拓展包 laravel overtrue/laravel-wechat 安装方式:composer require "overtrue/laravel-wechat:^6.0" 详细了解请看:laravel-wechat 配置文件及对应信息 config/wechat.php /* * 公众号 */ 'official_account' =

  • Thinkphp使用Zxing扩展库解析二维码内容图文讲解

    一.下载PHP版本的Zxing扩展库 下载地址:https://github.com/khanamiryan/php-qrcode-detector-decoder 二.使用Zxing扩展库 1.文件下载好后,直接解压,结构如下,我们只需要lib这个文件夹 2.将lib文件夹重命名为Zxing,然后打开Zxing目录下的QrReader.php文件,可以发现命名空间是Zxing 3.接下来就很简单了,把Zxing文件夹放到thnikphp的扩展目录extend里 4.报错 Fatal error

  • PHP基于phpqrcode类生成二维码的方法示例详解

    HP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址: http://phpqrcode.sourceforge.net/ 下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2. phpqrcode.php提供了一个关键的png()方法,其中 参数$text表示生成二位的的信息文本: 参数$outfile表示是否输出二维码图片 文件,默认否: 参数$level表示容错率,

  • PHP二维码的生成与识别案例

    二维码的分类 线性堆叠式二维码 矩阵式二维码 二维码的优缺点 优点 信息容量大 编码范围广 容错能力强 译码可靠性高 可引入加密措施 成本低,易制作 缺点 二维码技术成为手机病毒.钓鱼网站传播的新渠道 信息泄密 目前流行的三大国际标准 PDF417:不支持中文 DM:专利未公开,需支付专利费用 QR CODE:专利公开,支持中文 QR CODE 纠错能力 L级:约可纠错7%的数据码字 M级:约可纠错15%的数据码字 Q级:约可纠错25%的数据码字 H级:约可纠错30%的数据码字 前提条件 GD库

  • Android基于google Zxing实现二维码的生成

    最近项目用到了二维码的生成与识别,之前没有接触这块,然后就上网搜了搜,发现有好多这方面的资源,特别是google Zxing对二维码的封装,实现的已经不错了,可以直接拿过来引用,下载了他们的源码后,只做了少少的改动,就是在Demo中增加了长按识别的功能,网上虽然也有长按识别的Demo,但好多下载下来却无法运行,然后总结了一下,加在了下面的Demo中.   下面来介绍这个Demo的主类 public class BarCodeTestActivity extends Activity { priv

  • 二维码的生成细节和原理

    二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等.这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下.供好学的人一同学习之. 关于QR Code Specification,可参看这个PDF:http://raidenii.net/files/datasheets/misc/qr_c

  • unityZXing二维码的生成与扫描

    本文实例为大家分享了unityZXing二维码生成与扫描的具体代码,供大家参考,具体内容如下 借鉴自某位大佬不记得了 using System.Collections; using System.Collections.Generic; using UnityEngine; using ZXing; using UnityEngine.UI; /// <summary> /// 二维码扫描识别功能 /// </summary> public class TestQRCodeScan

  • Go语言实现新春祝福二维码的生成

    目录 前言 简单二维码生成 字节流二维码 识别二维码 前言 二维码现在是随处度可以看到,买东西,支付,添加好友只要你扫一扫就能完成整个工作,简单且方便.所以利用这个新春佳节做一个带着新春祝福的二维码. 简单二维码生成 Go 有一个 go-qrCode 库可以很简单的完成该项功能.首先需要下载该包. go get github.com/skip2/go-qrcode 下载完之后就可以简单创建一个 Go项目. func main(){ qrcode.WriteFile("新年快乐", qr

  • IOS笔记061之二维码的生成和扫描

    如今二维码随处可见,无论是实物商品还是各种礼券都少不了二维码的身影.而手机等移动设备又成为二维码的一个很好的应用平台,不管是生成二维码还是扫码二维码.本篇文章从生成二维码.扫描二维码展开分析,通过内容分析二维码用起来也很easy了. 首先说下生成二维码 二维码可以存放纯文本.名片或者URL 其次生成二维码的步骤: 导入CoreImage框架 再次通过滤镜CIFilter生成二维码 1.创建过滤器 2.恢复滤镜的默认属性 3.设置内容 4.获取输出文件 5.显示二维码 代码实现 CoreImage

  • iOS二维码的生成代码

    本文实例为大家分享了iOS二维码的生成代码,供大家参考,具体内容如下 一.工程图. 二.代码. ViewController.m #import "ViewController.h" #import "ScanViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // D

  • iOS二维码的生成和扫描

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 属性 @property (strong,nonatomic)AVCaptureDevice * device; @property (strong,nonatomic)AVCaptureDeviceInput * input; @property (strong,nonatomic)AVCaptureMetadataOutput * output; @property (strong,nonatomic)AV

  • 基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作

    在很多项目里面,对条形码和二维码的生成和打印也是一种很常见的操作,在Web项目里面,我们可以利用JS生成条形码和二维码的组件有很多.本文引入两个比较广泛使用的JS组件,用来处理条形码和二维码的生成处理,并介绍如何利用CLODOP组件实现内容的打印输出. 生成条形码使用组件JsBarcode,生成二维码使用组件qrcodejs. 1.条形码的生成 条码的作用一般在一些商品标签上,方便使用条码枪快速.准确录入信息. 如下所示是一种条形码 这里条形码生成使用了JsBarcode组件进行处理,它支持很多

  • Android编程实现二维码的生成与解析

    本文实例讲述了Android编程实现二维码的生成与解析.分享给大家供大家参考,具体如下: 直接上代码,代码上面有具体的解析,并且提供jar供下载:二维码Jar包.rar. 根据文本生成对应的二维码: // 生成QR图 private void createImage() { try { // 需要引入core包 QRCodeWriter writer = new QRCodeWriter(); String text = qr_text.getText().toString(); Log.i(T

随机推荐