人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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}のように可変変数にしてみる→失敗
とことごとく失敗しました。。。

●質問者: sheepsace
●カテゴリ:ウェブ制作
○ 状態 :キャンセル
└ 回答数 : 0/0件

▽最新の回答へ

質問者から

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

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


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ