PHPでQRコードを自動生成するライブラリとか。

例えば、ショッピングサイトを作成するときに、商品それぞれに携帯ページがあって、そのページへのQRコードを自動生成させたい場合などがあったりしますよね。
CMSなどでPCページに対応する携帯ページを自動生成してくれるサービスは多くありますが、大量のページ1つ1つにQRコードを作成するのは面倒、でも、QRコードをつけることで気に入った商品に再度アクセスしてもらえるチャンスは広がります。

そういうときにこんなプログラム。

【QRcode Perl CGI & PHP scripts ver. 0.50】

http://www.swetake.com/qr/qr_cgi.html

  • GDを使用してQR codeのpngまたはjpegイメージを出力する、またはいくつかの画像を配置してホームページ上でQR codeを表示する perl CGIプログラム qr_img.cgi (perl5,GDおよびGD.pmが必要)
  • GDを使用してpngまたはjpegイメージを出力するPHPスクリプト qr_img.php (PHPおよびGDが必要)
  • 他にlibpng/jpeg-6bが必要

の2つが同梱されています。
PHPのほうが他のプログラムと連携させたり、カスタマイズしやすく、様々な方が拡張機能のPHPを公開されていますので、基本、こちらを使用したいと思います。

動作確認環境
Linux 2.4.18
apache-1.3.27 + PHP-4.3.0(as apache module)
perl 5.6.1
GD 2.0.11
GD.pm 2.06

ページ最下部の「qr_img0.50g.tar.gz (930KB)」をダウンロードし、展開します。

qr_img0.50-+-perl–+- qr_img.cgi (※CGIを利用する場合)
| +- qr_image.pl
| +- qr_html.pl
|
+-data -+- qrvV_N.dat
| +- rscX.dat
| +- qrvfrV.dat
|
+-image-+- qrvV.png
| +- b.png d.png
|
+-php — qr_img.php (※PHPを利用する場合)

展開したファイルをサーバーにアップし、アップしたスクリプトに表示させたいQRコードのパラメータを渡します。詳細は、READMEを参照してください。

  • ホームページリンクを表示させる場合のパラメータの渡し方例:
    <img src=”qr_img.php?d=<?=urlencode(http://www.bton.net46.net/)?>&e=M&s=3&t=j”>
  • メール送信させるときのパラメータの渡し方例(=日本語を使う場合はSJISエンコード):
    lt;php? $subject = urlencode(mb_convert_encoding(“おはよう”, “SJIS”));
    $body = urlencode(mb_convert_encoding(“こんにちは”, “SJIS”));
    ?>

    ※先にPHPで変数を設定しておく
    (DOCOMO)
    <img src=http://www.bton.net46.net/wp-admin/qr_img.php?d=MATMSG:TO:bton@bton.net46.net;SUB:&lt;?=$subject?&gt;;BODY:&lt;?=$body?&gt;;;&amp;e=M&amp;s=3&amp;t=j />
    (AU,SOFTBANK)
    <img src=”qr_img.php?d=MATMSG:TO:bton@bton.net46.net;SUB:<?=$subject?>;BODY:<?=$body?>;;&e=M&s=3&t=j”>

PHPで値を取り出すときのスクリプトとパラメータは下記参照してください。

メソッド 説明
set_qrcode_version(int z) QRコードのバージョンを設定します。
指定できる値は0または1~40の整数です。
なお0を指定すると「自動設定」となります。
int get_qrcode_ersion() QRコードのバージョンを取得します。
バージョン設定を自動にした時の結果を取得できます。
0が返ってきた場合は「自動設定」です。
set_qrcode_error_correct(string ecc_char) QRコードのエラー訂正レベルを設定します。
指定できる値は”L”,”M”,”Q”,”H”の4種類で省略した場合 M が選択されます。
string cal_qrcode(string data) 与えられたデータ列 data についてQRコードmodel2に変換し(0,1,\n)で構成された二次元コードテキストデータを出力します。
ここで出力されるデータはクワイエットゾーンは加味されません。
set_module_size(int z) QRコードのバージョンを取得します。
バージョン設定を自動にした時の結果を取得できます。
0が返ってきた場合は「自動設定」です。
int get_qrcode_version() モジュールサイズを z に設定します。
初期値は4です。
set_quietzone(int z) クワイエットゾーンの幅を z に設定します。
初期値は4です。
string qrcode_image_out(string org_data[,string image_type][,string filename]) URLエンコードされた文字列org_dataをQRコードに変換しimage_typeのイメージで出力します。
image_typeは’jpeg’または’png’を指定できます。
省略した場合はpngになります。
また第3引数にファイル名を指定した場合、そのファイルに出力を行います。
string image_out(string data [,string image_type][,string filename]) (0,1,\n)で構成されるQRコードテキストデータをimage_typeのイメージで出力します。
image_typeは’jpeg’または’png’を指定できます。
省略した場合はpngになります。
また第3引数にファイル名を指定した場合、そのファイルに出力を行います。

 
参考サイト:

  1. http://itpro.nikkeibp.co.jp/article/COLUMN/20061110/253264/?ST=start4 (◎)
  2. http://www.s-memo.net/blog/2006/11/phpqrqrcode_perl_cgi_php_scrip.php
  3. http://d.hatena.ne.jp/rsky/20070427/1177680276
  4. http://d.hatena.ne.jp/rsky/20070501
  5. http://www.jinlingren.com/eid15.html

Leave a comment

メールアドレスが公開されることはありません。