勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHP Qr Codeライブラリを使用してQRコードを生成する方法

   2026/08/15  PHP

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

  関連記事

jQueryプラグインでクリップボードにコピーする方法(clipboard.js)
jQueryプラグインでクリップボードにコピーする方法(clipboard.js)

ページ上のボタンをクリックすることで特定の文章をクリップボードにコピーしたかった ...

ページ内のスクロールバーを見やすく且つ異なるブラウザ間でも同じデザインにする「SimpleBar」ライブラリの利用方法
ページ内のスクロールバーを見やすく且つ異なるブラウザ間でも同じデザインにする「SimpleBar」ライブラリの利用方法

CSSのoverflowでスクロールバーを設置した際、ブラウザによってデザイン( ...

JavaScriptのマップ用ライブラリ「MapLibre GL JS」の利用方法
JavaScriptのマップ用ライブラリ「MapLibre GL JS」の利用方法

あるサイトをWappalyzerで調査していた際に「MapLibre GL JS ...

JavaScriptで画像読み込み完了のタイミングを検知する「imagesLoaded」ライブラリの利用方法
JavaScriptで画像読み込み完了のタイミングを検知する「imagesLoaded」ライブラリの利用方法

大き目のサイズの画像をページに設置すると読み込み完了まで時間がかかる。その画像が ...

MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法
MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法

MySQLのバックアップを取る際にadminerとかから手動で対応するのではなく ...