PHPでwhileループの問題が発生しました。アンパサンド記号を使用して解決されている可能性があります。以下は例です。私は_nを(ベースネームの)ファイル名に追加しようとしています。 _1があればそれを_2にしたい、_2があれば_3とするなど。何らかの理由で$ filename変数を更新できないので、ループ内で変更されていないと思います。PHP:whileループ - 条件で変更された変数を使用
$dir = 'images';
$filename = '123.jpg';
$i = 0;
while (file_exists($dir.'/'.$filename)) {
$filename = preg_replace('/^(\d*?)(\.jpg)$/',"$1_".(++$i)."$2",$filename);
}
echo $filename;
私は間違っていますか?
私は同じ結論に達していました。 +1 –
正確です。どのように私はそれを逃しましたか?どうもありがとう。 – inhan
まだ何か間違っています。私は/^(¥d+)(_¥d+)?(\.jpg)$/で試しましたが、まだ運がありません。 – inhan