IT

PHP를 사용하여 동적으로 QR 코드 생성

lottoking 2020. 9. 6. 10:19
반응형

PHP를 사용하여 동적으로 QR 코드 생성 [닫기]


내 웹 사이트에서 QR 코드를 생성합니다. 그들이해야 할 일은 내 사이트의 변수가 제공 할 URL을 포함하는 것뿐입니다. 이를 수행하는 가장 쉬운 방법은 무엇입니까?


추가 할 가치가 있습니다. @abaumg 에서 게시 한 QR 코드 라이브러리 외에도 Google은QR 코드 API QR Codes API 링크 업데이트 를 위해 @Toukakoukan 에게 감사드립니다 .

이것을 사용하는 기본적으로 :

https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8
  • 300x300 생성하려는 QR 이미지의 크기입니다.
  • chl당신이 QR 코드로 변경하고자하는 URL 인코딩 된이고,
  • 이것은 choe(선택적) 인코딩입니다.

위의 링크는 더 자세한 정보를 제공하지만 사용하는 다음 src과 같이 조작 된 값에 대한 이미지 포인트가 있어야합니다.

<img src="https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8" title="Link to Google.com" />

시험 :


PHP로 QR 코드를 생성하는 가장 쉬운 방법은 phpqrcode 라이브러리 입니다.


phpqrcode 라이브러리 구성에 정말 빨리하고 API 문서는 이해하기 쉽습니다.

abaumg 답변 외에도의 http://phpqrcode.sourceforge.net/examples/index.php 에서이 예제를 첨부 개의 PHP했습니다 .

1. QR 코드

먼저 로컬 경로의 라이브러리를 먼저 살펴보십시오.

include('../qrlib.php');

그런 다음 이미지를 PNG 스트림으로 직접 선택하여 다음을 수행하십시오.

QRcode::png('your texte here...');

결과를 로컬에 PNG 이미지로 저장 비용 :

$tempDir = EXAMPLE_TMP_SERVERPATH;

$codeContents = 'your message here...';

$fileName = 'qrcode_name.png';

$pngAbsoluteFilePath = $tempDir.$fileName;
$urlRelativeFilePath = EXAMPLE_TMP_URLRELPATH.$fileName;

QRcode::png($codeContents, $pngAbsoluteFilePath); 

2. QR 코드 비용

zxing 디코더를 참조하십시오 .

http://zxing.org/w/decode.jspx

출력을 확인하는 데 매우 유용합니다.

3. 데이터 형식 목록

데이터 유형에 따라 QR 코드에서 사용할 수있는 데이터 형식 목록 :

  • 웹 사이트 URL : http://stackoverflow.com (프로토콜 포함 http://)
  • 이메일 주소 : mailto : name@example.com
  • 전화 번호 : +16365553344 (국가 코드 포함)
  • SMS 메시지 : smsto : number : message
  • MMS 메시지 : mms : number : subject
  • YouTube 동영상 : youtube : // ID (표준화되지 않은 iPhone에서 작동 할 수 있음)

endroid / QR 코드 라이브러리는 사용하기 쉽고 잘 유지하고, 작곡가를 사용하여 설치할 수 있습니다. Symfony에서 직접 사용할 수 있는 번들 도 있습니다 .

설치 중 :

$ composer require endroid/qrcode

사용법 :

<?php

use Endroid\QrCode\QrCode;

$qrCode = new QrCode();
$qrCode
    ->setText('Life is too short to be generating QR codes')
    ->setSize(300)
    ->setPadding(10)
    ->setErrorCorrection('high')
    ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
    ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
    ->setLabel('Scan the code')
    ->setLabelFontSize(16)
    ->setImageType(QrCode::IMAGE_TYPE_PNG)
;

// now we can directly output the qrcode
header('Content-Type: '.$qrCode->getContentType());
$qrCode->render();

// or create a response object
$response = new Response($qrCode->get(), 200, array('Content-Type' => $qrCode->getContentType()));

생성 된 QRCode


Github의 qrcode-generator . 가장 간단한 스크립트와 매력처럼 작동합니다.

장점 :

  • 타사 의존성 없음
  • QR 코드 생성 횟수 제한 없음

질문은 PHP를 사용하여 QR 코드를 생성하는 방법이라는 것을 알고 있지만 웹 사이트에 대한 코드를 생성하는 방법을 찾고있는 다른 사람들에게는 순수한 자바 스크립트로이를 수행하는 것이 좋은 방법입니다. JQuery와-하시면 자동의 jQuery 플러그인은 잘한다.


나는 한동안 Google qrcode api를 사용해 왔지만 생성 된 이미지에 액세스하려면 인터넷에 있어야하므로이 방식이 마음에 들지 않았습니다.

나는 약간의 comand-line 조사를했고 linux에 qrencodeqr 코드를 생성 하는 명령 줄 도구가 있다는 것을 알았습니다 .

이 작은 대본을 썼습니다. 그리고 좋은 부분은 생성 된 이미지의 크기가 1KB 미만이라는 것입니다. 제공된 데이터는 단순히 URL입니다.

$url = ($_SERVER['HTTPS'] ? "https://" : "http://").$_SERVER['HTTP_HOST'].'/profile.php?id='.$_GET['pid'];
$img = shell_exec('qrencode --output=- -m=1 '.escapeshellarg($url));

$imgData = "data:image/png;base64,".base64_encode($img);

그런 다음 html에서 이미지를로드합니다.

<img class="emrQRCode" src="<?=$imgData ?>" />

설치 만하면됩니다. [리눅스에있는 대부분의 이미징 앱은 여러분이 깨닫지 못한 채 후드 아래에 설치했을 것입니다.

참고 URL : https://stackoverflow.com/questions/5943368/dynamically-generating-a-qr-code-with-php

반응형