>  기사  >  백엔드 개발  >  PHP에서 QR 코드를 생성하는 세 가지 방법

PHP에서 QR 코드를 생성하는 세 가지 방법

jacklove
jacklove원래의
2018-06-11 23:42:0981483검색

가장 간단하고 실용적인 구글 오픈소스 방법

추천 매뉴얼 : php 완전 자습 매뉴얼

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 &#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 클래스 라이브러리 PHP QR Code

주소: http://phpqrcode.sourceforge.net/
다운로드: http://sourceforge.net/projects/phpqrcode/

클래스 라이브러리 다운로드 후 공식 웹사이트에서 제공하는 경우 phpqrcode.php만 사용하면 QR 코드를 생성할 수 있습니다. 물론 PHP 환경에서 GD2 지원이 활성화되어야 합니다. phpqrcode.php는 $text 매개변수가 두 자리 정보 텍스트의 생성을 나타내는 핵심 png() 메소드를 제공합니다. 매개변수 $outfile은 QR 코드 이미지 파일을 출력할지 여부를 나타내며, 기본값은 $level입니다. 내결함성 비율을 나타냅니다. 즉, L(QR_ECLEVEL_L, 7%), M(QR_ECLEVEL_M, 15%), Q(QR_ECLEVEL_Q, 25%), H(QR_ECLEVEL_H, 30%)인 해당 영역을 여전히 식별할 수 있습니다. $size 매개변수는 생성된 이미지의 크기를 나타내며, 기본값은 3입니다. $margin 매개변수는 QR 코드 주변의 공백 영역의 간격 값을 나타냅니다. $saveandprint 매개변수는 QR 코드를 저장할지 여부를 나타냅니다. 그리고 그것을 표시합니다.

코드는 다음과 같습니다.

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 코드 호출:

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

실제 적용에서는 QR 코드 중간에 자체 로고를 추가하여 홍보 효과를 높일 예정입니다. 그렇다면 로고가 포함된 QR 코드를 생성하는 방법은 무엇입니까?

사실 원리는 매우 간단합니다. 우선 PHP QR코드를 이용하여 QR코드 이미지를 생성한 후, PHP의 이미지 관련 기능을 이용하여 새로 생성된 원본 QR코드 중간에 미리 준비된 로고 이미지를 추가해 주시면 됩니다. 이미지를 선택한 다음 새 QR 코드 이미지를 다시 생성합니다.

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;;
추천 관련 기사:
1.WeChat QR 코드를 생성하는 PHP의 예
2.QR 코드를 생성하기 위한 PHP URL 변환
관련 영상 추천:
1.Dugu Jiujian (4)_PHP 영상 튜토리얼

두 번째 방법: $filename을 사용하지 않고 두 번째 매개변수가 false인 경우 QR코드 이미지가 저장되지 않고 바로 출력됩니다.

이제 마음에 드는 것이 있습니다: libqrencode 및 QRcode Perl CGI 및 PHP 스크립트 QR 코드 생성 플러그인 원하는 경우 살펴볼 수도 있습니다.

3. jquery의 QR코드 생성 플러그인인 qrcode를 기반으로 해당 페이지에서 플러그인을 호출하면 해당 QR코드를 생성할 수 있습니다.

qrcode는 실제로 jQuery를 사용하여 그래픽 렌더링 및 그리기를 수행하고 캔버스(HTML5) 및 테이블을 지원합니다.

은 https://github.com/jeromeetienne/jquery- qrcode gets에서 찾을 수 있습니다. 최신 코드.

사용방법

(1) 먼저 페이지에 jquery 라이브러리 파일과 qrcode 플러그인을 추가합니다.

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

(2) QR 코드가 표시되어야 하는 페이지에 다음 코드를 추가합니다.

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

(3).

qrcode는 이미지 렌더링을 위해 캔버스와 테이블의 두 가지 방법을 지원합니다. 기본적으로 캔버스 방법이 사용되며, 이는 가장 효율적입니다. 물론 브라우저는 html5를 지원해야 합니다. 다음과 같이 직접 전화하세요:

$(&#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判断从什么渠道打开二维码

위 내용은 PHP에서 QR 코드를 생성하는 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 명령줄다음 기사:PHP 명령줄