搜尋
首頁後端開發PHP問題PHP如何產生與識別二維碼

PHP如何產生與識別二維碼

May 27, 2021 pm 05:54 PM
phpQR 圖碼

本篇文章為大家介紹一下PHP產生與辨識二維碼的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

PHP如何產生與識別二維碼

二維碼的分類

  • #線性堆疊式二維碼

  • 矩陣式二維碼

二維碼的優缺點

優點

  • 訊息容量大

  • 編碼範圍廣

  • 容錯能力強

  • #譯碼可靠性高

  • ##可引入加密措施

成本低,易於製作

    #二維碼技術成為手機病毒、釣魚網站傳播的新管道
  • 資訊洩密
  • 目前流行的三大國際標準
  • PDF417:不支援中文
  • DM:專利未公開,需支付專利費用

    QR CODE :專利公開,支援中文
  • QR CODE 糾錯能力

    L級:約可糾錯7%的資料碼字
  • M級:約可糾錯15%的資料碼字
  • #Q級:約可糾錯25%的資料碼字

PHP如何產生與識別二維碼

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 = &#39;L&#39;;
$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 = &#39;./pic/logo.png&#39;;
    $Logo_re = &#39;./pic/test_logo.png&#39;;
    $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 = &#39;BEGIN:VCARD&#39; . "\n";//起始标志
$content .= &#39;VERSION:2.1&#39; . "\n";//当前版本
$content .= &#39;N:周&#39; . "\n";//姓
$content .= &#39;FN:勇&#39; . "\n";//名
$content .= &#39;ORG:江苏东大集成电路系统有限公司&#39; . "\n";//公司名称
$content .= &#39;TITLE:PHP研发程序员&#39; . "\n";//职位
$content .= &#39;TEL;WORK;VOICE:0523-83623173&#39; . "\n";//工作电话
$content .= &#39;ADR;WORK:;;高新区星火路#2;南京市;江苏省;225762;中国&#39; . "\n";//工作地址
$content .= &#39;ADR;HOME:;;下圩镇王横村178号;兴化市;江苏省;225762;中国&#39; . "\n";//家庭地址(街道,地级市,省,邮编,国家)
$content .= &#39;TEL;TYPE:18000001111&#39; . "\n";//移动电话
$content .= &#39;EMAIL:123456@qq.com&#39; . "\n";//邮箱
$content .= &#39;URL:www.baidu.com&#39; . "\n";//个人主页
$content .= &#39;END:VCARD&#39; . "\n";//结束标志
QRcode::png($content);

二、JQUERY產生QR CODE

#原始碼位址:https://github.com/jeromeetienne/jquery-qrcode

#jquery_create.php

<!DOCTYPE html>
<html>
<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>
    //$(&#39;#qrcode&#39;).qrcode("this plugin is great");
    $(&#39;#qrcode&#39;).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(&#39;./qrReader/lib/QrReader.php&#39;);
$qrcode = new QrReader(&#39;./test_logo.png&#39;);  //图片路径
$text = $qrcode->text(); //返回识别后的文本
echo $text;
## #推薦學習:###php影片教學#######

以上是PHP如何產生與識別二維碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!