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

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

jacklove
jackloveOriginal
2018-06-11 23:42:0981205Durchsuche

Die einfachste und praktischste Goolge-Open-Source-Methode

Empfohlenes Handbuch: PHP vollständiges Selbstlernhandbuch

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-Klasse Bibliothek PHP QR Code

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-Code zu generieren. Natürlich muss Ihre PHP-Umgebung GD2-Unterstützung aktivieren. phpqrcode.php bietet eine Schlüsselmethode png(), bei der der Parameter $text die Generierung eines zweistelligen Informationstextes angibt; der Parameter $outfile gibt an, ob eine QR-Code-Bilddatei ausgegeben werden soll; gibt die Fehlertoleranzrate an, d. h. Die abgedeckten Bereiche können noch identifiziert werden, nämlich L (QR_ECLEVEL_L, 7 %), M (QR_ECLEVEL_M, 15 %), Q (QR_ECLEVEL_Q, 25 %), H (QR_ECLEVEL_H, 30 %); Der Parameter $size gibt die Größe des generierten Bildes an, der Standardwert ist 3; der Parameter $margin gibt den Abstandswert des leeren Bereichs des Randes um den QR-Code an; der Parameter $saveandprint gibt an, ob der QR-Code gespeichert werden soll und zeigen Sie es an.

Der Code lautet wie folgt:

public static function png($text, $outfile=false, $level=QR_ECLEVEL_L, $size=3, $margin=4,  
$saveandprint=false)  
{ 
    $enc = QRencode::factory($level, $size, $margin); 
    return $enc->encodePNG($text, $outfile, $saveandprint=false); 
}

PHP-QR-Code aufrufen:

include &#39;phpqrcode.php&#39;; 
QRcode::png(&#39;http://www.helloweba.com&#39;);

In der tatsächlichen Anwendung Das Hinzufügen Ihres eigenen Logos in der Mitte des QR-Codes hat den Werbeeffekt verstärkt. Wie generiert man also einen QR-Code mit einem Logo?

Tatsächlich ist das Prinzip sehr einfach. Verwenden Sie zunächst den PHP-QR-Code, um ein QR-Code-Bild zu generieren, und verwenden Sie dann die bildbezogenen Funktionen von PHP, um das vorbereitete Logo-Bild zum neu generierten hinzuzufügen Platzieren Sie das Original in der Mitte des QR-Code-Bildes und generieren Sie dann ein neues QR-Code-Bild neu.

include &#39;phpqrcode.php&#39;;  
$value = &#39;http://www.helloweba.com&#39;; //二维码内容 
$errorCorrectionLevel = &#39;L&#39;;//容错级别 
$matrixPointSize = 6;//生成图片大小 
//生成二维码图片 
QRcode::png($value, &#39;qrcode.png&#39;, $errorCorrectionLevel, $matrixPointSize, 2); 
$logo = &#39;logo.png&#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;helloweba.png&#39;); 
echo &#39;<img src="helloweba.png">&#39;;
Empfohlene verwandte Artikel:
1.Beispiel für die PHP-Generierung von WeChat-QR-Code
2.PHP-URL-Konvertierung zur Generierung von QR-Code
Ähnliche Videoempfehlungen:
1.Dugu Jiujian (4)_PHP-Video-Tutorial

Für die zweite Methode: Wenn Sie $filename nicht verwenden, der erste Wenn die beiden Parameter falsch sind, wird das QR-Code-Bild nicht gespeichert, sondern direkt ausgegeben.

Jetzt gibt es 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 auch einen Blick darauf werfen.

3. Basierend auf dem jQuery-basierten QR-Code-Generierungs-Plugin qrcode kann der entsprechende QR-Code durch Aufruf des Plug-Ins generiert werden auf der Seite.

qrcode implementiert tatsächlich grafisches Rendern und Zeichnen mithilfe von jQuery 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 Canvas- und Tabellenmethoden für die Bildwiedergabe. Standardmäßig wird die Canvas-Methode verwendet, die am effizientesten ist. Natürlich muss der Browser HTML5 unterstützen. Direkter Aufruf wie folgt:

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

您也可以通过以下方式调用:

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

这样就可以在页面中直接生成一个二维码,你可以用手机“扫一扫”功能读取二维码信息。

(4).识别中文

我们试验的时候发现不能识别中文内容的二维码,通过查找多方资料了解到,jquery-qrcode是采用charCodeAt()方式进行编码转换的。而这个方法默认会获取它的Unicode编码,如果有中文内容,在生成二维码前就要把字符串转换成UTF-8,然后再生成二维码。您可以通过以下函数来转换中文字符串:

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

以下示例:

var str = toUtf8("普罗旺斯没有故事"); 
$(&#39;#code&#39;).qrcode(str);

本文介绍了php生成二维码的三种方法,更多相关内容请关注php中文网。

相关推荐:

PHP如何实现二维码的生成以及识别(代码)

phpqrcode类生成二维码详解

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
Vorheriger Artikel:PHP-BefehlszeileNächster Artikel:PHP-Befehlszeile