サンプル・プログラムの実行例

サンプル・プログラム
qr_sample.php | サンプル・プログラム本体 |
qr_img.php | QRcode PHP scriptsのPHP7/8対応版 |
準備
このライブラリはPHP5.x以上に対応していないので、先ほどダウンロードした "qr_sample.zip" の中に入っている "qr_img.php" に差し替える。
36: //qr_imgライブラリの場所
37: define('QR_IMAGE', '../../../../common/qr_img/php/qr_img.php');
解説:QRimageのリクエストURLを取得
129: /**
130: * QRimageのリクエストURLを取得
131: * @param string $text QRコードにするテキスト
132: * @param string $error ECCレベル(L | M | Q | H)
133: * @param string $type 画像フォーマット(J:JPEG, それ以外:PNG)
134: * @param string $siz 画像サイズ
135: * @return string リクエストURL
136: */
137: function getQRimageURL($text, $error='M', $type='P', $size='4') {
138: return QR_IMAGE . '?d=' . urlencode($text) . '&e=' . $error . 'M&t=' . $type . '&s=' . $size;
139: }
解説:HTML BODYを作成する
QRコードは、imgタグの中でQRimageのリクエストURLを呼び出している。
141: /**
142: * HTML BODYを作成する
143: * @param string $text QRコードにするテキスト
144: * @param string $url QRimageリクエストURL
145: * @return string HTML BODY
146: */
147: function makeCommonBody($text, $url) {
148: $myself = MYSELF;
149: $refere = REFERENCE;
150: $width = WIDTH;
151: $title = TITLE;
152: $version = '<span style="font-size:small;">' . date('Y/m/d版', filemtime(__FILE__)) . '</span>';
153:
154: //QRコード(画像)のタグ
155: if ($url == '') {
156: $image = '';
157: } else {
158: $image = '<img src="' . $url . '}" />';
159: }
160:
161: $body =<<< EOT
162: <body>
163: <h2>{$title} {$version}</h2>
164: <form name="myform" method="post" action="{$myself}" enctype="multipart/form-data">
165: テキスト:<br />
166: <textarea id="text" name="text" rows="8" cols="70">{$text}</textarea><br />
167: <input type="submit" id="exec" name="exec" value="作成" />
168: </form>
169: {$image}
170:
171: <div style="border-style:solid; border-width:1px; margin:20px 0px 0px 0px; padding:5px; width:{$width}px; font-size:small; overflow-wrap:break-word; word-break:break-all;">
172: <h3>使い方</h3>
173: <ol>
174: <li>[<span style="font-weight:bold;">テキスト</span>]にQRコードにしたいテキストを入力し,[<span style="font-weight:bold;">作成</span>] ボタンを押してください.</li>
175: <li>QRコードを表示します.</li>
176: </ol>
177: ※参考サイト:<a href="{$refere}">{$refere}</a>
178: </div>
179: </body>
180:
181: EOT;
182: return $body;
183: }
参考サイト
- QRコード・バーコード:Y.Swetake さん
- QR code.com:デンソーウェーブ
ぱふぅ家のホームページも携帯(現在はiモードのみ)に対応しているので、PC版のトップページに QR コードを表示してみようと考えた。
Y.Swetake さんのサイトにPHPのスクリプトやクラス・ライブラリが公開されている。今回は、これを利用させていただくことにした。なお、このライブラリを利用するには、GD 2.0以上 が組み込まれている必要がある。
なお、QR コードは株式会社デンソーウェーブが開発し、その規格・仕様自体はオープンであるが、QR コードという名称だけはデンソーウェーブの登録商標となっている。
(2020年12月19日)PHP8対応。全面改訂。