내 웹 사이트에서 QR 코드를 생성하려고합니다. 그들이해야 할 일은 내 사이트의 변수가 제공 할 URL을 포함하는 것입니다. 이를 수행하는 가장 쉬운 방법은 무엇입니까?
내 웹 사이트에서 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 에서 2 개의 예제를 첨부 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 코드에서 사용할 수있는 데이터 형식 목록 :
http://
)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()));
setText()
가 여러 개인 경우 어떻게 사용할 수 있습니까? 예를 들어, 내가 가지고있는 $a = 1
, $b = 2
, $c = 3
?. 나는 더 이상 사용할 필요 ONE 문장 또는 문자열. 어떻게 할 수 있습니까?
setText
방법은 단 하나 개의 매개 변수를 허용 당신이 그것을 전달하기 전에 하나에 당신의 변수을 연결해야 같아요. 하지만 문제를 올바르게 이해하고 있는지 잘 모르겠습니다. 라이브러리의 저장소에서 문제를 열어야 할 수도 있습니다.
나는 한동안 Google qrcode api를 사용해 왔지만 생성 된 이미지에 액세스하려면 인터넷에 있어야하므로이 방식이 마음에 들지 않았습니다.
나는 약간의 comand-line 조사를했고 linux에 qrencode
qr 코드를 생성 하는 명령 줄 도구가 있다는 것을 알았습니다 .
이 작은 대본을 썼습니다. 그리고 좋은 부분은 생성 된 이미지의 크기가 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 ?>" />
설치 만하면됩니다. [리눅스에있는 대부분의 이미징 앱은 여러분이 깨닫지 못한 채 후드 아래에 설치했을 것입니다.
http://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
질문은 PHP를 사용하여 QR 코드를 생성하는 방법이라는 것을 알고 있지만 웹 사이트에 대한 코드를 생성하는 방법을 찾고있는 다른 사람들에게는 순수한 자바 스크립트로이를 수행하는 것이 좋은 방법입니다. JQuery와-하시면 자동의 jQuery 플러그인은 잘한다.