PHPで、連番の値を持つQRコードを生成しようとしています。

PEARパッケージ「Image_QRCode」を使っています。

for($i=1; $i<11; $i++){
$img = $qrcode->makeCode(strval($i),
array(
'image_type' => 'png',
'output_type' => 'return',
'error_correct' => 'H',
));
imagepng($img, "/保存先パス/qr".$i.".png");
imagedestroy($img);
}

これで1~10までの値を持つQRコードを生成しているつもりなのですが、生成されたQRコードをリーダーで読み取ると、全て「1」になってしまいます。

for文でのループを使わずに
$img = $qrcode->makeCode(strval(10), (以下略)
と書くと「10」と読み取られるQRコードを生成出来るので、前回生成したQRコードのリソース?が消し切れていないのが原因なのかなと思っています。

こちら、解決方法はありますでしょうか?

こちらでも下記のような対策を試みたのですが、
・imagedestroyの後にsleep(1)で1秒処理を中断させてみる→失敗
・for文に入った段階で、$img = "";と変数を初期化してみる→失敗
・$imgを$img = ${'img'.$i}のように可変変数にしてみる→失敗
とことごとく失敗しました。。。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/04/11 14:30:04
  • 終了:2013/04/18 14:35:05
id:sheepsace

自己解決した気がします。

今まで、ループの外に書いていた
$qrcode = new Image_QRCode();
を、ループ内に書いたらちゃんと生成されるようになりました。
こちらを毎回初期化しないとダメだったのですね。。

回答(0件)

回答はまだありません

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません