PHPでQRコード作成と言えば
http://www.swetake.com/qr/qr_cgi.html
が超有名なんだけど、
今回は趣向を変えて、
libqrencode版
http://megaui.net/fukuchi/works/qrencode/index.html
を作って見ました。
サンプルはこちら。
■メリット
車輪の再発明ではあるんですが、、、
・libqrencodeというCで出来た軽量のライブラリを使用する。
・GDがいらない。(画像を作らなければ)
・漢字モードが使える
などがメリットです。
■使い方。
例によって、pecl-codegenを使ってPHP拡張を作りました。
まずは、ともかく
libqrencodeをインストール。
http://megaui.net/fukuchi/works/qrencode/index.html
./configure
make
make install
そして、
qrencode-0.0.1.tar.gz
php-qrencode-0.0.2.tar.gz
(ちょい修正、20070409)
をダウンロードして
tar xvfz qrencode-0.0.2.tar.gz
cd qrencode-0.0.2
phpize
./configure
make
make install
あとは、php.iniに
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/"
extension=qrencode.so
などとして下さい。
これで、qrencode()という関数が使えるようになります。
使い方は、
こんな感じ。
$qrdataに、1や0が沢山はいった二次元配列が帰ってきますので、
画像にするなり、テーブルを作るなり、CSSで書くなり、
好きにして下さいませ。
1が黒いところ、0が白いところです。
qrencode関数は、
$ret = qrencode(文字列,バージョン,誤り訂正レベル,モード);
となってます。
引数は、
1.QRコードに入れたい文字列
2.バージョン、QRコードのサイズです。大きくするとドットが4つづつ増えます。
小さくしても、文字があふれると自動で大きくなるようです。
3.誤り訂正レベル4段階
QR_ECLEVEL_L 復元能力7%
QR_ECLEVEL_M 復元能力15%
QR_ECLEVEL_Q 復元能力25%
QR_ECLEVEL_H 復元能力30%
復元能力が高くなると入れれる文字列が減ります。
4.モード
QR_MODE_NUM 数字モード
QR_MODE_AN 英数字モード
QR_MODE_8 バイナリモード
QR_MODE_KANJI SJIS漢字モード
です。
以上、うまく動いたら是非教えてくださいませ!!
http://www.swetake.com/qr/qr_cgi.html
が超有名なんだけど、
今回は趣向を変えて、
libqrencode版
http://megaui.net/fukuchi/works/qrencode/index.html
を作って見ました。
サンプルはこちら。
■メリット
車輪の再発明ではあるんですが、、、
・libqrencodeというCで出来た軽量のライブラリを使用する。
・GDがいらない。(画像を作らなければ)
・漢字モードが使える
などがメリットです。
■使い方。
例によって、pecl-codegenを使ってPHP拡張を作りました。
まずは、ともかく
libqrencodeをインストール。
http://megaui.net/fukuchi/works/qrencode/index.html
./configure
make
make install
そして、
php-qrencode-0.0.2.tar.gz
(ちょい修正、20070409)
をダウンロードして
tar xvfz qrencode-0.0.2.tar.gz
cd qrencode-0.0.2
phpize
./configure
make
make install
あとは、php.iniに
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/"
extension=qrencode.so
などとして下さい。
これで、qrencode()という関数が使えるようになります。
使い方は、
<?
$str = "ABCDEFG";
$qrdata = qrencode($str,3,QR_ECLEVEL_M,QR_MODE_8);
?>
<html>
<head>
<style>
.qr_line{
clear:both;
overflow:hidden;
height:4px;
}
.qr_line b{
background:#fff;
width:4px;
height:4px;
float:left;
overflow:hidden;
}
.qr_line i{
background:#000;
width:4px;
height:4px;
float:left;
overflow:hidden;
}
</style>
</head>
<body>
<?foreach($qrdata as $row){?>
<div class="qr_line">
<?foreach($row as $cell){?>
<?=($cell=="0")?"<b></b>":"<i></i>"?>
<?}?>
</div>
<?}?>
?>
こんな感じ。
$qrdataに、1や0が沢山はいった二次元配列が帰ってきますので、
画像にするなり、テーブルを作るなり、CSSで書くなり、
好きにして下さいませ。
1が黒いところ、0が白いところです。
qrencode関数は、
$ret = qrencode(文字列,バージョン,誤り訂正レベル,モード);
となってます。
引数は、
1.QRコードに入れたい文字列
2.バージョン、QRコードのサイズです。大きくするとドットが4つづつ増えます。
小さくしても、文字があふれると自動で大きくなるようです。
3.誤り訂正レベル4段階
QR_ECLEVEL_L 復元能力7%
QR_ECLEVEL_M 復元能力15%
QR_ECLEVEL_Q 復元能力25%
QR_ECLEVEL_H 復元能力30%
復元能力が高くなると入れれる文字列が減ります。
4.モード
QR_MODE_NUM 数字モード
QR_MODE_AN 英数字モード
QR_MODE_8 バイナリモード
QR_MODE_KANJI SJIS漢字モード
です。
以上、うまく動いたら是非教えてくださいませ!!


QRコードですね!libqrencode版なんてあるんですね~。
最近はカラーコードを使って何かやりたいという
要望を良く聞きますよ~。
http://www.colorzip.co.jp/ja/
こんにちは!
へぇ、カラーコードですか。
いろんなのがあるんですねぇ。
専用のリーダをダウンロードして使うんですね。
画像認識と組み合わせて、独自の「なんちゃらコード」を作っちゃうのも面白いかもですねぇ。
情報がありがとうございました。
うちのサーバーにも入れてみようかと思います。
で、QRといえば、こんなのもありますよ。
http://kazina.com/qr/index.html
ひろかわさんのエクステンションのtarボールが「qrencode-0.0.2.tar.gz」で、
バージョン以外が同じなので、ちょっと混乱しそうですね。
ローカルで変えてもいいのですが、バージョンアップされたときとか、
分かりにくくなるので、できたらエクステンションのtarボールの名前を
変えてもらうと嬉しいです。
こんにちは。
確かに、名称がわかりにくいですね、
変えて置くように致します。
http://kazina.com/qr/index.html
これはなかなか、良いアイデアですね。
結構無理やりな仕様ではありますが、
エラー補正機能を自前で用意しているんだから有りかなぁ
とも思います。
これもつくってみようかな。
rpm化ありがとうございます。
ありがたく利用させて頂きます。
php-qrencode-0.0.2.tar.gzをダウンロードしてみたのですが
展開しようとすると「tar アーカイブではないようです」と出てしまいます。
なにか処理に問題があるのでしょうか?
よろしくお願いします
アーカイブの解凍はどうされていますでしょうか?
linux上で、
tar xvfz php-qrencode-0.0.2.tar.gz
で、解凍出来ると思います。
おためし下さい。