programing

동적으로 PHP과 QR코드 생성.

nicescript 2022. 9. 21. 22:20
반응형

동적으로 PHP과 QR코드 생성.

제 웹 사이트에서 큐알 코드를 생성하는 데 노력하고 있어요.그들이 할 일은 그들에, 저의 사이트에 변수는 줄 수 있는 URL이 있는 날이다.무엇일까 가장 쉬운 방법은 이것을 해야 하나?

QR코드 도서관@ abaumg이 올린 것 외에 구글 @ Toukakoukan 링크 업데이트에 대한 QR코드 APIQR코드 APImany 감사를 제공한다를 추가할 가치가 있어요.

, 기본적으로 이것을 사용하려면:

https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8
  • 300x300당신 generate,고 싶어 큐알 이미지의 사이즈.
  • chl당신은 QR코드로 바꾸기 원하는url-encoded 문자열,.
  • 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의 답변 외에 2개의 예를 첨부했습니다.PHPhttp://phpqrcode.sourceforge.net/examples/index.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
  • 전화번호: +1636553344 (국가코드 포함)
  • SMS 메시지: smsto: 번호: 메시지
  • MMS 메시지: mms: 번호: 제목
  • YouTube 동영상 : youtube : //ID (iPhone에서 동작 가능, 표준화되지 않음)

Endroid/QrCode 라이브러리는 사용하기 쉽고 유지보수가 잘 되며 컴포저를 사용하여 설치할 수 있습니다.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

qrcode-generator를 사용할 수 있습니다.가장 간단한 대본과 마법처럼 작동합니다.

장점:

  • 서드파티 의존관계 없음
  • QR코드 생성 수 제한 없음

문제는 어떻게 PHP를 사용하여 QR코드를 생성하느냐는 것이지만, 순수 자바스크립트로 이를 수행하는 웹사이트의 코드를 생성하는 방법을 찾고 있는 다른 사람들에게는 좋은 방법입니다.jquery-qrcode jquery 플러그인이 이 기능을 합니다.

구글 qrcode api를 사용하고 있습니다만, 생성된 이미지에 접속하려면 인터넷에 접속해야 하기 때문에 별로 마음에 들지 않았습니다.

툴 「Linux」가 것을 되었습니다.qrencodeqr-time 생성에 됩니다.

이 작은 대본을 내가 썼어또한 생성된 이미지의 크기가 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 ?>" />

설치만 하면 됩니다.[Linux의 대부분의 이미징 앱은 자신도 모르게 보닛 아래에 설치되어 있을 것입니다.

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

반응형