ウェブサイトでQRコードを生成しようとしています。彼らがしなければならないことは、私のサイトの変数が提供するURLを持っていることです。これを行う最も簡単な方法は何ですか?
@ abaumg が投稿したQRコードライブラリに加えて、Googleは QRコードAPI QRコード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 libraryは本当に設定が速く、APIドキュメントは理解しやすいです。
abaumgの回答に加えてhttp://phpqrcode.sourceforge.net/examplesからのPHP
の2つの例を添付しました。 /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コードで使用できるデータ形式のリスト:
http://
を含む)endroid/QrCode library は使いやすく、よく管理されており、composerを使用してインストールできます。 Symfonyで直接使用する bundle もあります。
インストール:
$ 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()));
私はしばらくの間google qrcode apiを使用していましたが、生成されたイメージにアクセスするにはインターネットに接続する必要があるため、これはあまり好きではありませんでした。
コマンドラインで少し調べてみると、Linuxにはqr-codeを生成するためのコマンドラインツールqrencode
があることがわかりました。
この小さなスクリプトを書きました。そして良い点は、生成された画像のサイズが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のほとんどのイメージングアプリは、気付かないうちにボンネットの下にインストールしていたでしょう。
私は質問がPHPを使用してQRコードを生成する方法であることを知っていますが、純粋なjavascriptでこれを行うWebサイトのコードを生成する方法を探している人にとってはそれを行う良い方法です。 jquery-qrcode jqueryプラグインがうまく機能します。