Teilen Sie drei Methoden zum Generieren von QR-Codes in PHP

藏色散人
Freigeben: 2023-04-09 16:20:01
nach vorne
6178 Leute haben es durchsucht

Die einfachste und praktischste Goolge-Open-Source-Methode, aber die Antwort ist etwas langsam

1.Google Open API

Der Code lautet wie folgt:

$urlToEncode="http://www.helloweba.com";   
generateQRfromGoogle($urlToEncode);   
/**  
 * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】  
 * @param string $chl 二维码包含的信息,可以是数字、字符、二进制信息、汉字。  
 不能混合数据类型,数据必须经过UTF-8 URL-encoded  
 * @param int $widhtHeight 生成二维码的尺寸设置  
 * @param string $EC_level 可选纠错级别,QR码支持四个等级纠错,用来恢复丢失的、读错的、模糊的、数据。  
 *                            L-默认:可以识别已损失的7%的数据  
 *                            M-可以识别已损失15%的数据  
 *                            Q-可以识别已损失25%的数据  
 *                            H-可以识别已损失30%的数据  
 * @param int $margin 生成的二维码离图片边框的距离  
 */   
function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0')   
{   
    $chl = urlencode($chl);   
    echo '<img src="http://chart.apis.google.com/chart?chs=&#39;.$widhtHeight.&#39;x&#39;.$widhtHeight.&#39;   
    &cht=qr&chld=&#39;.$EC_level.&#39;|&#39;.$margin.&#39;&chl=&#39;.$chl.&#39;" alt="QR code" widhtHeight="&#39;.$widhtHeight.&#39;   
    " widhtHeight="&#39;.$widhtHeight.&#39;"/>';   
}
Nach dem Login kopieren

2.php Klassenbibliothek PHP QRCode

Adresse : http://phpqrcode.sourceforge.net/
Download: http://sourceforge.net/projects/phpqrcode/
Nachdem Sie die von der offiziellen Website bereitgestellte Klassenbibliothek heruntergeladen haben, müssen Sie nur noch phpqrcode.php verwenden, um den QR zu generieren Natürlich muss Ihre PHP-Umgebung die Unterstützung von GD2 ermöglichen. phpqrcode.php stellt eine Schlüsselmethode png() bereit, bei der der Parameter $frame den generierten Informationstext darstellt; Dateiname gibt an, ob eine QR-Code-Bilddatei ausgegeben werden soll (Dateipfad, einschließlich Bildname und Suffix), der Standardwert ist nein; der Parameter $pixelPerPoint gibt die Fehlertoleranzrate an, d. h. Der Parameter kann auch dann erkannt werden, wenn der abgedeckte Bereich groß ist. $outerFrame gibt die Größe des generierten Bildes an. Der Standardwert ist 4. Der Parameter $saveandprint gibt an, ob das Bild gespeichert werden soll QR-Code. GD2phpqrcode.php提供了一个关键的png()方法,其中参数$frame表示生成的信息文本;参数$filename 表示是否输出二维码图片文件(文件路径,包含图片名和后缀),默认否;参数$pixelPerPoint 表示容错率,也就是有被覆盖的区域还能识别参数,$outerFrame表示生成图片大小,默认是4;参数$saveandprint表示是否保存二维码。

代码如下:

public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE) 
        {
            $image = self::image($frame, $pixelPerPoint, $outerFrame);
            
            if ($filename === false) {
                Header("Content-type: image/png");
                ImagePng($image);
            } else {
                if($saveandprint===TRUE){
                    ImagePng($image, $filename);
                    header("Content-type: image/png");
                    ImagePng($image);
                }else{
                    ImagePng($image, $filename);
                }
            }
            
            ImageDestroy($image);
        }
Nach dem Login kopieren

调用PHP QR Code:

<?php
include &#39;phpqrcode.php&#39;;   //只需要phpqrcode一个文件即可,下载的里面其他的没什么用
QRcode::png(&#39;http://www.baidu.com&#39;);
Nach dem Login kopieren

实际应用中,我们会在二维码的中间加上自己的LOGO,已增强宣传效果。那如何生成含有logo的二维码呢?其实原理很简单,先使用PHP QRCode生成一张二维码图片,然后再利用php的image

Der Code lautet wie folgt:

<?php
include &#39;./phpqrcode.php&#39;;
QRcode::png(&#39;http://www.baidu.com&#39;,&#39;qrcode.png&#39;,2,10,true);
$logo = &#39;logo.jpg&#39;;//准备好的logo图片
$QR = &#39;qrcode.png&#39;;//已经生成的原始二维码图
if ($logo !== FALSE) {
    $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, &#39;newcode.png&#39;);
echo &#39;![](./newcode.png)&#39;;
Nach dem Login kopieren

Aufruf des PHP-QR-Codes:

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.qrcode.min.js"></script>
Nach dem Login kopieren

In der tatsächlichen Anwendung fügen wir unser eigenes LOGO in der Mitte des QR-Codes ein, um den Werbeeffekt zu verstärken. Wie generiert man also einen QR-Code mit einem Logo? Tatsächlich ist das Prinzip sehr einfach. Verwenden Sie zunächst PHP QRCode, um ein QR-Code-Bild zu generieren, und verwenden Sie dann die image-bezogenen Funktionen von PHP, um das vorbereitete Logo-Bild hinzuzufügen Fügen Sie das neu generierte Bild in die Mitte des ursprünglichen QR-Code-Bildes ein und generieren Sie dann ein neues QR-Code-Bild.

<p id="code"></p>
Nach dem Login kopieren
Für die zweite Methode: Wenn $filename nicht verwendet wird und der zweite Parameter falsch ist, wird das QR-Code-Bild nicht gespeichert, sondern direkt ausgegeben.
Es gibt auch einige, wenn Sie möchten: libqrencode und QRcode Perl CGI- und PHP-Skripte QR-Code-Generierungs-Plug-ins. Wenn es Ihnen gefällt, können Sie es auch ausprobieren.

3. Das auf jquery basierende QR-Code-Generierungs-Plug-in qrcode kann den entsprechenden QR-Code generieren, indem es das Plug-in auf der Seite aufruft.

qrcode verwendet tatsächlich jQuery zum Rendern und Zeichnen von Grafiken und unterstützt Canvas (HTML5) und Tabelle.

Den neuesten Code erhalten Sie unter https://github.com/jeromeetienne/jquery-qrcode.

So verwenden Sie


(1): Fügen Sie der Seite zunächst die Jquery-Bibliotheksdatei und das QRcode-Plug-In hinzu.

$('#code').qrcode("http://www.helloweba.com"); //任意字符串
Nach dem Login kopieren

(2) Fügen Sie den folgenden Code zu der Seite hinzu, auf der der QR-Code angezeigt werden soll:

$("#code").qrcode({ 
    render: "table", //table方式 
    width: 200, //宽度 
    height:200, //高度 
    text: "www.helloweba.com" //任意内容 
});
Nach dem Login kopieren

(3).

qrcode unterstützt standardmäßig zwei Methoden: Canvas und Tabelle. Die Canvas-Methode ist die effizienteste. Natürlich muss der Browser HTML5 unterstützen. Der Direktaufruf läuft wie folgt ab:

function toUtf8(str) {    
    var out, i, len, c;    
    out = "";    
    len = str.length;    
    for(i = 0; i < len; i++) {    
        c = str.charCodeAt(i);    
        if ((c >= 0x0001) && (c <= 0x007F)) {    
            out += str.charAt(i);    
        } else if (c > 0x07FF) {    
            out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));    
            out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));    
            out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));    
        } else {    
            out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));    
            out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));    
        }    
    }    
    return out;    
}
Nach dem Login kopieren
Sie können ihn auch folgendermaßen aufrufen:
var str = toUtf8("随便来点啥"); 
$('#code').qrcode(str);
Nach dem Login kopieren
Auf diese Weise kann direkt auf der Seite ein QR-Code generiert werden. Sie können die „Scan“-Funktion Ihres Mobiltelefons nutzen um die QR-Code-Informationen zu lesen.

Chinesisch erkennen

🎜🎜Während des Experiments haben wir festgestellt, dass der QR-Code mit chinesischen Inhalten nicht erkannt werden konnte. Durch die Suche nach verschiedenen Informationen haben wir erfahren, dass jquery-qrcode die Methode charCodeAt() zur Codierungskonvertierung verwendet. Diese Methode erhält standardmäßig ihre Unicode-Codierung. Wenn chinesischer Inhalt vorhanden ist, muss die Zeichenfolge vor der Generierung des QR-Codes in UTF-8 konvertiert und anschließend der QR-Code generiert werden. Sie können chinesische Zeichenfolgen mit der folgenden Funktion konvertieren: 🎜rrreee🎜Beispiel unten:🎜rrreee

Das obige ist der detaillierte Inhalt vonTeilen Sie drei Methoden zum Generieren von QR-Codes in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:jianshu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!