가장 간단하고 실용적인 구글 오픈소스 방식이지만, 응답이 좀 느립니다
1.Google open api
코드는 다음과 같습니다.
$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 클래스 라이브러리 PHP QRCode
주소 : http://phpqrcode.sourceforge.net/
다운로드: http://sourceforge.net/projects/phpqrcode/
공식 홈페이지에서 제공하는 클래스 라이브러리를 다운로드한 후 phpqrcode.php만 사용하면 QR을 생성할 수 있습니다. 물론, 귀하의 PHP 환경은 GD2
지원을 활성화해야 합니다. phpqrcode.php
는 $frame
매개변수가 생성된 정보 텍스트인 $를 나타내는 키 <code>png()
메소드를 제공합니다. filename 은 QR 코드 이미지 파일(이미지 이름 및 접미사를 포함한 파일 경로)을 출력할지 여부를 나타내며, 기본값은 no입니다. $pixelPerPoint
매개변수는 내결함성 비율, 즉 매개변수는 해당 영역이 라도 인식될 수 있습니다. $outerFrame
은 생성된 이미지의 크기를 나타내며, 기본값은 4입니다. 매개변수 $saveandprint
는 저장 여부를 나타냅니다. QR 코드. 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>
실제 적용에서는 QR 코드 중간에 자체 로고를 추가하여 홍보 효과를 높일 예정입니다. 그렇다면 로고가 포함된 QR 코드를 생성하는 방법은 무엇입니까? 사실 원리는 매우 간단합니다. 먼저 PHP QRCode
를 사용하여 QR 코드 이미지를 생성한 다음, PHP의 이미지
관련 함수를 사용하여 미리 준비된 로고 이미지를 추가합니다. 원본 QR 코드 이미지 중간에 새로 생성된 QR 코드 이미지를 다시 생성합니다. <p id="code"></p>
두 번째 방법: $filename을 사용하지 않고 두 번째 매개변수가 false인 경우 QR코드 이미지가 저장되지 않고 바로 출력됩니다.
원하는 경우 libqrencode 및 QRcode Perl CGI 및 PHP 스크립트 QR 코드 생성 플러그인도 있습니다. 원하시면 확인해 보세요.
qrcode는 실제로 jQuery를 사용하여 그래픽 렌더링 및 드로잉을 구현하고 캔버스(HTML5) 및 테이블을 지원합니다.
https://github.com/jeromeetienne/jquery-qrcode에서 최신 코드를 얻을 수 있습니다. 사용방법
(1) 먼저 페이지에 jquery 라이브러리 파일과 qrcode 플러그인을 추가하세요.
$('#code').qrcode("http://www.helloweba.com"); //任意字符串
(2) QR 코드가 표시되어야 하는 페이지에 다음 코드를 추가합니다.
$("#code").qrcode({ render: "table", //table方式 width: 200, //宽度 height:200, //高度 text: "www.helloweba.com" //任意内容 });
(3).
qrcode는 이미지 렌더링을 위해 캔버스와 테이블의 두 가지 방법을 지원합니다. 기본적으로 캔버스 방법이 사용되는데, 이는 물론 브라우저가 html5를 지원해야 합니다. 직접 통화 방법은 다음과 같습니다.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);이 방법으로 페이지에서 직접 QR 코드를 생성할 수 있습니다. 휴대폰의 "스캔" 기능을 사용할 수 있습니다. QR코드 정보를 읽어보세요.
중국어 인식
🎜🎜실험 중 중국어 내용이 포함된 QR코드는 인식이 안되는 것을 여러 정보를 검색해본 결과 jquery-qrcode가 인코딩 변환에 charCodeAt() 메소드를 사용한다는 것을 알게 되었습니다. 이 방법은 기본적으로 유니코드 인코딩을 가져옵니다. 중국어 콘텐츠가 있는 경우 QR 코드를 생성하기 전에 문자열을 UTF-8로 변환한 다음 QR 코드를 생성해야 합니다. 다음 함수를 사용하여 중국어 문자열을 변환할 수 있습니다: 🎜rrreee🎜아래 예:🎜rrreee위 내용은 PHP에서 QR 코드를 생성하는 세 가지 방법 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!