Heim  >  Artikel  >  Backend-Entwicklung  >  Drei Möglichkeiten, QR-Codes in PHP zu generieren

Drei Möglichkeiten, QR-Codes in PHP zu generieren

不言
不言Original
2018-06-02 15:52:543326Durchsuche

Dieser Artikel stellt hauptsächlich drei Methoden zum Generieren von QR-Codes in PHP vor. Jetzt kann ich ihn mit Ihnen teilen

Die einfachste und praktischste Google 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 &#39;<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;"/>&#39;;   
}

2.php Klassenbibliothek PHP QRCode
Adresse: http://phpqrcode.sourceforge.net/
Download: http://sourceforge.net/projects/phpqrcode/
Nachdem Sie die auf der offiziellen Website bereitgestellte Klassenbibliothek heruntergeladen haben, benötigen Sie nur noch Um phpqrcode.php zum Generieren des zweiten QR-Codes zu verwenden, muss Ihre PHP-Umgebung natürlich die Unterstützung aktivieren GD2. phpqrcode.php stellt eine Schlüsselmethode png() bereit, bei der der Parameter $frame den generierten Informationstext darstellt. Der Parameter $filename stellt dar, 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, dh der abgedeckte Bereich kann noch identifiziert werden. $outerFrame gibt die Größe des generierten Bildes an. Der Standardwert ist 4 Speichern Sie den QR-Code. $saveandprint

Der Code lautet wie folgt:

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);
        }

Aufruf des PHP-QR-Codes:

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

In der tatsächlichen Anwendung werden wir zur Verbesserung unser eigenes LOGO in der Mitte des QR-Codes hinzufügen die Publicity-Wirkung. Wie generiert man also einen QR-Code mit einem Logo? Tatsächlich ist das Prinzip sehr einfach. Verwenden Sie zunächst PHP

, um ein QR-Code-Bild zu generieren, und fügen Sie dann mit den QRCode-bezogenen Funktionen von PHP das vorbereitete Logo-Bild in die Mitte des neu generierten Original-QR-Code-Bildes ein , und generieren Sie dann ein neues QR-Code-Bild. image

<?phpinclude &#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;;

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 & PHP-Skripte QR-Code-Generierungs-Plug-in. Wenn es Ihnen gefällt, können Sie es auch ausprobieren.

3. Basierend auf dem jquery QR-Code-Generierungs-Plug-in qrcode kann der entsprechende QR-Code durch Aufrufen des Plug-ins auf der Seite generiert werden. qrcode verwendet tatsächlich jQuery zum Rendern und Zeichnen von Grafiken und unterstützt Canvas (HTML5) und Tabelle.
Sie können zu https://github.com/jeromeetienne/jquery-qrcode gehen, um den neuesten Code zu erhalten .

So verwenden Sie

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

<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.qrcode.min.js"></script>

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

<p id="code"></p>

(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 direkte Aufruf lautet wie folgt:

$(&#39;#code&#39;).qrcode("http://www.helloweba.com"); //任意字符串

Sie können ihn auch folgendermaßen aufrufen:

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

Auf diese Weise kann direkt auf der Seite ein QR-Code generiert werden, den Sie nutzen können Nutzen Sie die „Scan“-Funktion Ihres Mobiltelefons, 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() verwendet Kodierungskonvertierung. 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 den folgenden Funktionen konvertieren:

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;    
}

Das folgende Beispiel:

var str = toUtf8("随便来点啥"); 
$(&#39;#code&#39;).qrcode(str);

Verwandte Empfehlungen:


PHP generiert anklickbare Aktualisierungsüberprüfungscodemethoden und einfache Beispiele

Detaillierte Erläuterung des SnowFlake-Algorithmus zur Generierung eindeutiger IDs in PHP

Das obige ist der detaillierte Inhalt vonDrei Möglichkeiten, QR-Codes in PHP zu generieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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