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='.$widhtHeight.'x'.$widhtHeight.' &cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$chl.'" alt="QR code" widhtHeight="'.$widhtHeight.' " widhtHeight="'.$widhtHeight.'"/>'; }
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. GD2
。phpqrcode.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); }
调用PHP QR Code:
<?php include 'phpqrcode.php'; //只需要phpqrcode一个文件即可,下载的里面其他的没什么用 QRcode::png('http://www.baidu.com');
实际应用中,我们会在二维码的中间加上自己的LOGO,已增强宣传效果。那如何生成含有logo的二维码呢?其实原理很简单,先使用PHP QRCode
生成一张二维码图片,然后再利用php的image
<?php include './phpqrcode.php'; QRcode::png('http://www.baidu.com','qrcode.png',2,10,true); $logo = 'logo.jpg';//准备好的logo图片 $QR = 'qrcode.png';//已经生成的原始二维码图 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, 'newcode.png'); echo '![](./newcode.png)';
<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.qrcode.min.js"></script>
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>
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.
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"); //任意字符串
(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" //任意内容 });
(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; }
var str = toUtf8("随便来点啥"); $('#code').qrcode(str);
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:🎜rrreeeDas 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!