最近あちこちで使われている2次元バーコードのQRコードをPNG画像で表示するプラグインです。ドコモなどの携帯リンクを常にMenuBarに表示させたいという目的からつくってみました。†デフォルト環境での設置についてみこ氏のページにあるファイルをローカルにて解凍したときに3つのフォルダが出てきます。\plugin\image\dataこれらのフォルダを各ディレクトリに設置してください。†&qrcode{バーコード化する文字列};&qrcode(サイズ){バーコード化する文字列};&qrcode(サイズ,訂正方法){バーコード化する文字列};&qrcode(サイズ,訂正方法,バージョン){バーコード化する文字列};&qrcode(サイズ,訂正方法,バージョン,分割数){バーコード化する文字列};引数については、みこ氏のページをご参照ください。10:14:01おもしろそうですね。strip_tags($d);を追加するといいかも。11:29:01ありがとうございます。修正してアップします。15:19:50とりあえず、いろいろ整理しました。あと、暫定対応ですが連結機能もつけました。07:04:58XSSの脆弱性が存在します。14:29:19ご指摘ありがとうございます。以下のように修正しました。09:00:22大変興味があるのですが、GD1.8.4対応にするには、、、。13:48:33感動しました。17:38:22生成される画像ファイルにFrontPageのHTMLソースがそのまま連結されてしまっているのでサイトによっては処理がかなり重くなると思われます。QRcode($qr);die();と変更することで回避ができました。01:47:02もひとつ。現在24Bitカラーなので減色も入れてみました。ImagePng($output_image);の手前で1Bit(2色)インデックスカラーに変更します。ImageTrueColorToPalette($output_image,false,2);ImagePng($output_image);これでファイルサイズは1KBをきるようになるはずです。18:47:12なるほど、ソースが連結されているのは気づきませんでした。ありがとうございます。ひとつのほうはサーバのCPU処理を多く使うと多数のリクエストに耐えられるか心配だったので素直に出力していました。13:00:47上記、回避コードおよび減色を入れて0.4としました。12:11:22miconoといいます。qrcodeのこと検索していたら、mikoさんのページが引っかかりました。ハンドル名(ページ名)が似てて、びっくりしました。いうかQRCodeの作成/読取りのソフトを私も作ってるし!(http://micono.hp.infoseek.co.jp)。swetakeさんのコードは、単一モードでしか吐き出せないし、漢字モードも使えないから、場合によってはもっと小さいバージョンのQRcodeが作れると思って、漢字モード対応と、混在モードでも吐き出せる様に書き換えしてます。mikoさんのは、もうそうなってるんですか?アルゴリズム考えるのが面倒っすよね。JIS仕様書の最後の方にちらっと書いてあるけど、排他的文字集合が、[6、7、8]個とか、意味わからな~い。14:16:08まず、結論から言うと同じ制限(内部でモードの変更ができない+8ビットモードを使用している)はあります。携帯QR用が出発点だったので、そこまでクリティカルな業務用で使用するわけでもなし、減色している今は多少バージョンが大きくなってもそれほど画像サイズは変わらないし、また日本語だけを相手にすると国際化のときにはろくなことがないので、そのあたりは考慮していません。したがって、swetakeさんのサブセットとおもってもらったほうがいいかもしれません。14:17:34ただ、今後は引数を加えておこなうのはありかとおもいます。23:10:19ありがとうございます。確かにサーバー上だと、いらぬことしない方がいいかもね。23:18:07すいません、書きかけで、リターンしてしまいました。DoCoMoはversion10以上読めないみたいだし、数字2文字で11ビット、英文字2文字で10ビットは、効いてきそうな気がします。ネット上で扱うわけじゃ無いので、私は混在モード対応をやろうと思ってますです。00:28:14たしかに、オフラインでは(version10ぎりぎりで2画面に分割するかしないかで)効いてくるでしょうね。19:18:31そうですね。00:24:26また、注意しなければならないのはQRコードはいっしょですが、各社の携帯フォーマット(もしくは独自フォーマット)に対応しているか注意が必要です。17:00:54うーん、そうすると気がかりなのは2点ですね。1つは、PHPが同梱しているGDのバージョンでこれはGD2.0.11未満だと問題が存在する場合があります。指定されているデータが読み込めていない場合に誤ったデータが表示される可能性があります。18:37:07ちなみに、GD2.0.11以降を標準サポートしているPHPは4.3.2以降になります。インストールしても現象は再現しなかったです。