PHPでQRコードをつくる

(1/1)
QR コード(2 次元バーコード)が流行である。雑誌などに印刷してある QR コードを携帯デジカメで取り込むと URL として解釈され、キー操作する必要なくアクセスできるという使われ方が多い。
ぱふぅ家のホームページも携帯(現在は i モードのみ)に対応しているので、PC版のトップページに QR コードを表示してみようと考えた。
Y.Swetake さんのサイトに PHP のスクリプトやクラス・ライブラリが公開されている。今回は、これを利用させていただくことにした。なお、このライブラリを利用するには、GD 2.0 以上 が組み込まれている必要がある。

なお、QR コード株式会社デンソーウェーブが開発し、その規格・仕様自体はオープンであるが、QR コードという名称だけはデンソーウェーブの登録商標となっている。

サンプル・プログラム

サンプル・プログラムの解説

プログラムは、ライブラリ qr_img を呼び出すだけの簡単なものである。
ライブラリの格納場所はユーザー変数 $qr_img に明示しておく。

QR コードにするテキストの入力プログラムと、QR コード(画像)を表示するプログラムを1つのファイルにまとめるため少し工夫してある。
まず、後述する HTML の input タグでテキストを入力するのだが、その内容を変数 $_POST['d'] で受け取る。本プログラムは UTF-8 なので、ユーザー変数 $d1 には UTF-8 で、QR コード(画像)を表示する携帯電話などはシフト JIS であることが多いので、ユーザー変数 $d2 には SJIS で、それぞれ格納する。
もし $_POST['d'] が定義されていないなら――初めてこのプログラムが呼び出されたとき――変数 $d1 および $d2 は空の状態にしておく。

ライブラリ qr_img を呼び出すために、パラメータを含めた URL をユーザー変数 $duri に格納しておく。

0013: $qr_img = '../../../../common/qr_img/php/qr_img.php';    //qr_imgライブラリを指定
0014: 
0015: $d1 = isset($_POST['d']) ? mb_convert_encoding($_POST['d'], 'SJIS',  'auto') : '';
0016: $d2 = isset($_POST['d']) ? mb_convert_encoding($_POST['d'], 'UTF-8', 'auto') : '';
0017: $e = "M";                            //エラー
0018: $t = "J";                            //JPG出力
0019: $s = "2";                            //サイズ
0020: $uri = $qr_img . '?d=' . urlencode($d1) . '&e=' . $e . '&t=' . $t . '&s=' . $s;

サンプル・プログラムの解説

変換したいテキストは、HTML の input タグ を用いて入力する。

0033: <form method="post" action="$myself" enctype="utf-8">
0034: テキスト:
0035: <input type="text"   name="d" size="80" value="{$d2}" />
0036: <input type="submit" name="submit" value="作成" />
0037: </form>

QR コード(画像)の表示は、HTML の img タグ を利用して行う。

0045: <img src="{$uri}" />

参考サイト

(この項おわり)
header