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

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

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

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

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를 이용해서 생성만 하면 됩니다. 물론, GD2를 지원하려면 PHP 환경이 활성화되어 있어야 합니다. 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); 
}

                                                                            out QR 코드 밖으로 나와                                   —                                                                                   밖으로 — QR 코드에 추가됩니다 . 그렇다면 로고가 포함된 QR 코드를 생성하는 방법은 무엇입니까? 사실 원리는 매우 간단합니다. 먼저 PHP QR Code를 이용하여 QR코드 이미지를 생성한 후, PHP의 이미지 관련 기능을 이용하여 새로 생성된 원본 QR코드 이미지 중간에 미리 준비된 로고 이미지를 추가한 후, 새로운 QR 코드 사진을 재생성하세요.

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

두 번째 방법: $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 플러그인을 추가합니다.

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

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

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

(3).

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

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

다음과 같은 방법으로 전화할 수도 있습니다.

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

이 방법으로 페이지에서 직접 QR 코드를 생성할 수 있습니다. 휴대폰의 "스캔" 기능을 사용할 수 있습니다. QR코드 정보를 읽어보세요.

(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 支持断点续传的文件下载类的相关内容

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

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