PHPプロ!TIPS+

PHPでQRコードを作ろう

最近は、携帯サイト作成の際にはQRコードの存在が欠かせなくなってきました。QRコードを作る方法は様々ありますが、PHPにもこのQRコードをさくさくと作れるライブラリがあります。

今回は、そんな便利なPHPのエクステンション、php_qrを紹介します。

php_qrは、ブログ「讃容日記」の著者id:rsky氏により公開されているPHPエクステンションです。

このライブラリのインストールは、通常のPECLライブラリと同様に、phpizeから以下のようにします。

$ wget http://www.opendogs.org/pub/php_qr-0.1.3.tgz
$ tar xvzf php_qr-0.1.3.tgz
$ cd php_qr-0.1.3/
$ phpize
$ ./configure --enable-qr
$ make
$ sudo make install

(※なお、執筆時の最新バージョンは0.2.0ですが、テスト環境ではmakeの際にコンパイルエラーが出てしまったので今回は0.1.3を利用しました。)

あとは、php.iniにextension_dirを指定し、

extension=qr.so

の記述を含めてやればインストール完了です。

使い方は非常に簡単で、出力ファイル名とQRコードにしたい文字列、生成するQRコードに関する各種設定を配列としてqr_output_symbol関数に渡すだけです。

このとき、qr_output_symbol関数の第1引数に与える出力ファイル名をnullにすると、通常の出力として扱われるので、適切なheaderを与えてやることでPHPファイルから生成結果を動的に出力することができます。

また、QRコードの出力形式に合わせた適切なContent-typeはqr_mimetype関数を使って取得することができます。

サンプルコードは以下の通りです。

<?php
$data 
"テストです";
$data mb_convert_encoding($data"SJIS""UTF-8");

$option array(
  
'format' => QR_FMT_BMP,
  
'magnify' => 2
);
header('Content-Type: ' .qr_mimetype($option['format']) );
qr_output_symbol(null$data$option);

?>

このスクリプトをUTF-8で保存し、ブラウザからアクセスすると生成されたQRコードが表示されます。

実際に携帯で読み取ってみると、「テストです」という文字列が認識されるのが分かるかと思います。
(Shift_JISに変換しているのは携帯での文字化け対策のためです。)

このように、非常に簡単にQRコードが生成できるphp_qrライブラリ、ぜひ一度使ってみてはいかがでしょうか。

讃容日記 : http://d.hatena.ne.jp/rsky/

バックナンバーについて

TIPS-MLは、毎週金曜日に更新され、新しい記事が掲載されます。

Tipsꗗy[W 

Pick Up Q&A

Q
負荷時のmysql_connect()エラー
 このエントリーをはてなブックマークに追加 
A
これはPHPというよりOSまたはMySQLのコミュニティで質問されたほうがいいと思います。 ぱっと思いついた範囲で記すと MySQL等のDBに「ある時点において同時に接続可能なクライアントの最大数」に制限があるよう...

>>続きを読む

今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)