LoginSignup
1
4

More than 1 year has passed since last update.

PHPのライブラリでQRコード®を作成する。(chillerlan/php-qrcode)

Last updated at Posted at 2022-11-17

PHPのライブラリ(chillerlan/php-qrcode)を使ってQRコード®を作成しました。

本記事の環境

ホストOS:Windows10 Pro 64bit 8GB
ゲストOS:Red Hat Enterprise Linux release 8.3 (Ootpa)
Oracle VM VirtualBox:6.0.4a
vagrant:Vagrant 2.2.14
Apache:2.4.37
PHP:PHP 7.4.15
Tera Term:4.105
Composer:Composer version 2.0.8 2020-12-03 17:20:38
chillerlan/php-qrcode:4.3.4
Google Chrome:96.0.4664.110
コマンドプロンプト
ホストOS側に実ソース

手順1(ライブラリ導入)

  • Tera TermでゲストOSに接続する。
  • 作業用ディレクトリを作成する。
  • 作業用ディレクトリ配下でディレクトリ作成コマンドを実施する。
mkdir -p php-qr-code-generator \
php-qr-code-generator/src/QR/{Image,Options} \
php-qr-code-generator/public/img
  • ディレクトリを移動する。
cd php-qr-code-generator
  • composerを使ってライブラリを取得する。
composer require chillerlan/php-qrcode

手順2(ソースコード作成~動作確認)

  • ソースコードを書く。(サンプルは以下に載せています。)
    • 作業用ディレクトリのパスを指定してもいいし、作業用ディレクトリを実行用パスにコピーしてもいい。
  • ブラウザ上にQRコード®が表示されていることを確認する。
  • QRコード®を読み込んで、サイトへ遷移できることを確認する。

成果物(ソースコード(制御側))

// 定義(必要に応じてパスを変更してください。)
use chillerlan\QRCode\QRCode;
use chillerlan\QRCode\QROptions;
(中略)
// 実処理
require_once([実行用基点ディレクトリ] . '/php-qr-code-generator/vendor/autoload.php');
$options = new QROptions(
    [
        eccLevel' => QRCode::ECC_L,
        outputType' => QRCode::OUTPUT_IMAGE_PNG,
        version' => 5,
        imageTransparent' => false,
    ]
);
$qrcode = (new QRCode($options))->render('https://[QRコード®を作成するURL]');
  • eccLevel:QRコードの欠損を何%まで許容するか。
    • L ・・・ 7%までなら欠けてもOK
    • M ・・・ 15%までなら欠けてもOK
    • Q ・・・ 25%までなら欠けてもOK
    • H ・・・ 30%までなら欠けてもOK
  • outputType:出力画像タイプ(SVG、PNG、JPG、GIF、、、)
  • version:QRコードの粒度、細かさが変わる。
  • imageTransparent:透過するかどうか。(true:透過する、false:透過しない)
  • 他にできそうなこと:QRの色指定、サイズ指定、QRにロゴを付ける。

成果物(ソースコード(画面側))

<img src='<?= $qrcode ?>' alt='QR Code' width='800' height='800'>

参考

https://chillerlan.github.io/php-qrcode/classes/chillerlan-QRCode-QRCode.html
https://www.twilio.com/blog/create-qr-code-in-php-jp
https://blog.capilano-fw.com/?p=2140

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4