-2
私は706個のファイルがあるフォルダを持っています。単純に切り取ったサムネイルを保存するものです。時々私はそれをきれいに拭く必要があります。そこで、RecursiveDirectoryIteratorを使用してこれらのファイルを消去する関数を作成しました。ここに私の機能は次のとおりです。RecursiveIteratorIteratorはunlink関数と一緒に使用すると変な動作をします
function wipeDir($path)
{
$i = 0;
$src = realpath(get_home_path().$path);
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($src, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($files as $filename => $fileInfo) {
$i++;
unlink($filename);
}
return $i;
}
問題は、私がリンク解除機能を使用する場合にのみ527ファイルと$ Iを処理していることである= 527私は二回、この機能を実行すると、それは、このディレクトリ内のすべてのファイルをワイプが、私はコメントしている場合このフォルダ内のアイテムの正しい数であるunlink関数$ i = 706。 どういうわけか、ファイルがファイル527に達すると、関数のリンクを解除する関数がイテレータから壊れています。なぜ誰かがそれを知っていますか?
[奇妙なPHPの動作]の可能な複製再帰的なフォルダの削除は、すべてではなく527個のファイルのみを削除します](http://stackoverflow.com/questions/38478760/strange-php-behavior-recursive-folder-deletion-removes-only- 527-ファイルよりむしろファイル) –