Web サイトで QR コードを生成しようとしています。彼らがしなければならないことは、私のサイトの変数が提供する URL を含めることだけです。これを行う最も簡単な方法は何ですか?
7 に答える
@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 エンコードされた文字列です。 - the
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 ライブラリです。
endroid /QrCode ライブラリは使いやすく、よく管理されており、composer を使用してインストールできます。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()));
私はしばらくGoogle qrcode apiを使用していましたが、生成された画像にアクセスするにはインターネットに接続する必要があるため、これはあまり好きではありませんでした.
コマンドラインで少し調べてみたところ、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 ?>" />
インストールしておく必要があります。[Linux 上のほとんどのイメージング アプリは、気付かないうちに内部にインストールされていたでしょう。
問題は PHP を使用して QR コードを生成する方法であることは承知していますが、純粋な JavaScript でこれを行う Web サイトのコードを生成する方法を探している他の人にとっては、良い方法です。jquery-qrcode jquery プラグインはそれをうまく行います。