개발 꿀팁/PHP

php QR코드 생성 3가지 방법

Jammie 2022. 7. 5. 17:20
반응형

가장 간단하고 가장 실례가 되는 goolge 오픈소스 방법

1.구글 오픈 API

코드는 다음과 같습니다.

$urlToEncode="http://www.helloweba.com"; 
generateQRfromGoogle($urlToEncode); 
/** 
 * google apiQR코드 생성 [QRcode는 최대 4296개의 영숫자 타입의 임의의 텍스트를 저장할 수 있으며, QR코드 데이터 형식을 볼 수 있습니다]
 * @param string $chl QR코드에 포함된 정보는 숫자, 문자, 이진 정보, 한자일 수 있습니다。 
 데이터 유형을 혼합할 수 없습니다. 데이터는 반드시 통과해야 합니다UTF-8 URL-encoded 
 * @param int $widhtHeight QR코드 생성 크기 설정 
 * @param string $EC_level 옵션 오류 정정 수준, QR코드는 손실, 잘못 읽은, 흐릿한, 데이터를 복구하는 4단계 오류 정정을 지원합니다。 
 *                            L-기본: 손실된 데이터 7%를 인식할 수 있습니다 
 *                            M-15% 손실된 데이터를 식별할 수 있다
 *                            Q-25% 손실된 데이터를 식별할 수 있습니다
 *                            H-30% 이상 손실된 데이터를 식별할 수 있다
 * @param int $margin 생성된 QR코드 그림 테두리로부터의 거리 
 */ 
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 QR Code

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

다운로드 공식 홈페이지에 제공한 후, 라이브러리만 했다.사용해야 할 수 있어 2차원 바코드 생성 phpqrcode.php 당신의 환경 물론 필수다. PHP지지하고 있다. 열 GD2중요할 때 phpqrcode.php 방법으로 이 중 인자 png ( ). $ text2위를 차지한 정보의 생성에 대해 텍스트를 출력 매개 변수는, 그림 2차원 바코드 $ outfile 문서는 아니오, 기본 값으로 매개 변수에 대해서 내 고장성 $ level을 덮은 구역이 있을 수 있고, 식별은 각각 7%), L ( QR_ECLEVEL_L을 15%)M ( QR_ECLEVEL_M을 25%), Q ( QR_ECLEVEL_Q을 30%인자 H ( QR_ECLEVEL_H는 태어나서 ) ; 사진 크기 $ size을 기본 값은 2차원 바코드 표시 주변에 인자 3 ; 프레임 $ margin 구역 사이 공백치를 기록했고, 매개 변수를 저장할지에 대해 2차원 바코드 $ saveandprint.

아래와 같이 코드다.

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 Code 호출:

include 'phpqrcode.php'; 
QRcode::png('http://www.helloweba.com');

실제로 QR코드 중간에 자체 로고를 넣어 홍보 효과를 높였다.그러면 로고가 들어간 QR코드를 어떻게 생성하나요?PHP QR코드를 이용해 QR코드 이미지를 생성한 뒤 php의 image 관련 함수를 이용해 미리 준비한 로고 이미지를 새로 생성한 원본 QR코드 이미지 사이에 넣은 뒤 새로운 QR코드 이미지를 생성하는 간단한 원리다.

include 'phpqrcode.php';  
$value = 'http://www.helloweba.com'; //QR코드 내용
$errorCorrectionLevel = 'L';//오류 허용 등급
$matrixPointSize = 6;//그림 크기 생성
//QR코드 이미지 생성
QRcode::png($value, 'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2); 
$logo = 'logo.png';//준비된 로고 이미지 
$QR = 'qrcode.png';//생성된 원시 QR 그림
  
if ($logo !== FALSE) { 
    $QR = imagecreatefromstring(file_get_contents($QR)); 
    $logo = imagecreatefromstring(file_get_contents($logo)); 
    $QR_width = imagesx($QR);//QR코드 폭
    $QR_height = imagesy($QR);//QR코드 이미지 높이
    $logo_width = imagesx($logo);//로고 이미지 너비
    $logo_height = imagesy($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, 'helloweba.png'); 
echo '<img src="helloweba.png">';

두 번째 방법은 $filename을 사용하지 않고 두 번째 파라미터가 false일 경우 QR코드 이미지를 저장하지 않고 출력한다.

현재 libqrencode와 QRcode Perl CGI & PHP Scripts QR코드 생성 플러그인이 있습니다.집이 좋아도 구경할 수 있다.

3.jquery의 QR코드를 기반으로 플러그인qrcode를 생성하고, 이 플러그인을 페이지에서 호출하면 대응하는 QR코드를 생성할 수 있다.

qrcode는 사실 jQuery를 사용하여 그래픽 렌더링, 그래픽, canvas(HTML5) 및 table 두 가지 방식을 지원합니다.

GitHub - jeromeetienne/ jquery-qrcode: qrcode generation standalone (doesn't depend on external services) 최신 코드를 가져옵니다.

어떻게 사용하는가

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

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

(2)·페이지에서 QR코드를 표시해야 하는 곳에 다음 코드를 넣어주세요

<div id="code"></div>

(3).qrcode 플러그인을 불러옵니다.

qrcode는 canvas와 t를 지원합니다able은 두 가지 방식으로 이미지를 렌더링하고 기본적으로 canvas 방식을 사용하므로 가장 효율적이며, 당연히 브라우저에서 html5를 지원해야 한다.직접 호출은 다음과 같습니다.

$("#code").qrcode({ 
    render: "table", //table방식
    width: 200, //너비
    height:200, //높이
    text: "www.helloweba.com" //임의 내용 
});

이렇게 하면 페이지에서 바로 QR코드를 생성할 수 있고, 휴대전화 '싹쓸이' 기능으로 QR코드 정보를 읽을 수 있다.

(4).중국어를 인식하다

우리가 실험했을 때 중국어 내용을 인식할 수 없는 QR코드를 발견했는데, 여러 자료를 찾아보니 jquery-qrcode는 c로harCodeAt() 방식으로 코딩 변환됩니다.이 방법은 기본적으로 유니코드 코드를 획득하는데, 만약 중국어 콘텐츠가 있다면 QR코드를 생성하기 전에 문자열을 UTF-8로 변환한 후 QR코드로 재생한다.다음 함수로 중국어 문자열을 변환할 수 있습니다.

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);
반응형