Maison  >  Article  >  développement back-end  >  Comment PHP réalise-t-il la génération et l'identification des codes QR (code)

Comment PHP réalise-t-il la génération et l'identification des codes QR (code)

不言
不言original
2018-08-18 17:44:3322637parcourir

Le contenu de cet article explique comment générer et identifier des codes QR (codes) en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Manuel recommandé : Manuel d'auto-apprentissage complet en php

Classification des codes QR

  • Code QR empilé linéaire

  • Code QR matriciel

Avantages et inconvénients du code QR

Avantages

  • Grande capacité d'information

  • Large plage de codage

  • Forte tolérance aux pannes

  • Haute fiabilité de décodage

  • Des mesures de cryptage peuvent être introduites

  • Faible coût et facile à produire

Inconvénients

  • La technologie des codes QR est devenue un nouveau canal de propagation de virus mobiles et de sites Web de phishing

  • Fuite d'informations

Trois normes internationales majeures actuellement populaires

  • PDF417 : ne prend pas en charge le chinois

  • DM : brevet non divulgué, besoin de payer les frais de brevet

  • QR CODE : divulgation des brevets, prise en charge du chinois

Capacité de correction d'erreur du QR CODE

  • Niveau L : environ 7 % des mots de passe de données peuvent être corrigés

  • Niveau M : environ 15 % des mots de passe de données peuvent être corrigés en erreur

  • Niveau Q : environ 25 % des mots de passe de données peuvent être corrigés

  • Niveau H : environ 30 % des mots de passe de données peuvent être corrigés en erreur

Prérequis

  • Bibliothèque GD

1. PHP génère un QR CODE

  • Officiel site Web : http://phpqrcode.sourceforge.net/

  • Télécharger le code source : https://github.com/endroid/qr-code

Structure du répertoire

Comment PHP réalise-t-il la génération et lidentification des codes QR (code)

1 qrcode_create.php
ps : Générer un code QR ordinaire

<?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 : Générer un code QR avec 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 (générer une signature électronique)

  • Format 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);
Recommandation d'articles connexes :
1.Exemple de PHP générant un code QR WeChat
2.Conversion d'URL PHP pour générer un code QR
Recommandations vidéo associées :
1.Tutoriel vidéo Dugu Jiujian (4)_PHP

2. JQUERY génère un QR CODE

  • Adresse du code source : 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>
    <p id="qrcode"></p><script>
    //$(&#39;#qrcode&#39;).qrcode("this plugin is great");
    $(&#39;#qrcode&#39;).qrcode({width: 64,height: 64,text: "jason"});</script></body></html>

3. PHP reconnaît le code QR

1. Méthode 1
Exigences en matière d'environnement, installez les extensions suivantes
- ImageMagick
- zbar
- php-zbarcode

2. Méthode 2
PHP reconnaît les codes QR (pas besoin d'installer d'extensions). Pour les tests préliminaires, les codes QR ordinaires avec des logos sont acceptables, le niveau de tolérance aux pannes doit être. définir plus haut
Classe qrReader : https://github.com/baagee/php_QrReader

<?phpinclude_once(&#39;./qrReader/lib/QrReader.php&#39;);
$qrcode = new QrReader(&#39;./test_logo.png&#39;);  //图片路径
$text = $qrcode->text(); //返回识别后的文本
echo $text;

Lien : https://pan.baidu.com/s/1icpWRjIQiXdCXeOc52pNSg Mot de passe : c5y7

Recommandations associées :

php utilise open et fwrite pour exporter des fichiers dans plusieurs formats (code)

code d'implémentation php pour exporter des fichiers Excel au format csv format

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn