PHP Qr Codeライブラリを使用してQRコードを生成する方法
2024/04/25
PHPでQRコードを生成したい。大分前にGoogle Chart APIを用いてQRコードを生成したが、外部とのやり取りはせずにサーバ内で完結させたい。調べてみるとPHP Qr Codeというライブラリを使用することで解決できた。以下に対応方法をメモ。
目次
ライブラリ
TOPページ
http://phpqrcode.sourceforge.net/
ダウンロードページ
https://sourceforge.net/projects/phpqrcode/files/
使い方説明ページ
http://phpqrcode.sourceforge.net/examples/index.php
ライブラリ設置
ライブラリを解凍しphpqrcodeフォルダを適当なディレクトリにアップロードする。
ソースコード
QRコード画像を直接表示
// ライブラリ読み込み require_once "./phpqrcode/qrlib.php"; //QRコード表示 QRcode::png('https://sample.com/test.jpg');
表示する画像がjpgでもpngでも「QRcode::png」になるので注意する。
QRコード画像をimgタグで表示
上記で作成したphpファイルを以下のような形で読み込む。
<img src="https://sample.com/qr.php">
QRコードを画像として保存
//ライブラリの読み込み require_once './phpqrcode/qrlib.php'; //QRコード画像の保存場所 $tmp_dir = '/var/www/html/test/file/'; //ページURLをhttp / https形式で書く $img_file = 'https://test.com/test.png'; //保存するQRコード画像のファイル名 $file_name = 'file_' . md5($img_file) . '.png'; //QRコード画像存在チェック用パス $check_path = $tmp_dir . $file_name; //QRコード画像保存場所のURL $qr_url = 'https://test.com/file/' . $file_name; //QRコード画像の存在チェック if( !file_exists($check_path) ){ //QRコード画像が存在しない場合は新規保存 QRcode::png($img_file, $check_path); } //QRコード画像をimgタグで表示 echo '<img src="'.$qr_url.'" />';
実際にはformから画像等を送信して適当なディレクトリに保存し、上記ソースコードと組み合わせて使う形になりそう。
所感
Google Chart APIでもQRコードを画像として保存できそうだが、サーバ間でやり取りするので1枚の画像を保存・出力するのに時間がかかる。特に複数枚のQRコードを発行しようとすると結構な時間がかかったのでそのような場合は今回のような手段を取るようにする。あとできればPHP Qr Codeライブラリ以外にも良さそうなものが無いか探しておく。
追記
Google Chart APIは以下公式案内の通り非推奨らしく尚更他の手段をいくつか覚えておいた方が良さそう。
https://developers.google.com/chart/infographics/docs/qr_codes
関連記事
-
PHPでGoogle翻訳を手軽に扱えるライブラリ「google-translate-php」の利用方法
サイト内で一部テキストのGoogle翻訳を行いたい。ただ、Google Clou ...
-
PHPで画像アップロード、リサイズ、形式変換(jpg->webp等)はclass.upload.phpが便利
今までPHPで画像関連の処理を行う場合、リサイズの時のみsmart_resize ...
-
PHPでランダムなカラーコードを生成する「RandomColor.php」ライブラリの利用方法
PHPでランダムなカラーコードを生成したい。自作するとなると「0~9」「a~f」 ...
-
phpQueryを利用したjQueryライクなスクレイピング方法
phpQueryというライブラリを使用することでjQueryのセレクタ指定のよう ...
-
Composer無し&ファイル1枚でPHPのエラーメッセージ画面をリッチにするライブラリ「PHP Error」の利用方法
先日PHPのエラーメッセージを見やすくするwhoopsの利用方法をメモしたが導入 ...