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:111868Durchsuche

Die einfachste und praktischste Goolge-Open-Source-Methode

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 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 zu generieren Natürlich muss in Ihrer PHP-Umgebung die Unterstützung für GD2 aktiviert sein. 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); 
}

Aufrufen des PHP-QR-Codes:

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


In Tatsächliche Anwendung: Wir werden unser eigenes LOGO in der Mitte des QR-Codes hinzufügen, 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 den PHP-QR-Code, um ein QR-Code-Bild zu generieren, und fügen Sie dann mit der bildbezogenen Funktion von PHP das vorbereitete Logo-Bild in die Mitte des neu generierten Original-QR-Code-Bildes ein Erstellen Sie ein neues QR-Code-Bild.

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

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.

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 QR-Code-Generierungs-Plug-in qrcode kann der entsprechende QR-Code durch Aufrufen des Plug-ins generiert werden 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. 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.

(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中文网。

相关推荐:

关于HTML5 history API 的介绍

关于冒泡,二分法插入,快速排序算法的介绍

讲解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