我正在使用下面的代碼來遍歷目錄來打印出文件的名稱。但是,並非所有文件都顯示出來。我試過用clearstatcache沒有任何效果。PHP readdir沒有讀取一些文件
$str = '';
$ignore = array('.', '..');
$dh = @opendir($path);
if ($dh === FALSE)
{
// error
}
$file = readdir($dh);
while($file !== FALSE)
{
if (in_array($file, $ignore, TRUE)) { break; }
$str .= $file."\n";
$file = readdir($dh);
}
這裏的目錄的內容現在:
root.auth test1.auth test2.auth test3.auth test5.auth
然而,test5.auth不會出現。如果我將它重命名爲test4.auth,它不會出現。如果我將它重命名爲test6.auth,它會出現確實。這是可靠的行爲 - 我可以多次重命名它,除非將其重命名爲test6.auth,否則它將不會顯示。
究竟會發生什麼?
我正在用PHP 5.2.6版本運行Arch Linux(內核2.6.26-ARCH)和Suhosin-Patch運行Apache/2.2.9。我的文件系統是ext3,我正在運行fam 2.6.10。
D'哦!男人,我現在覺得自己很愚蠢。謝謝! – HoboBen 2008-10-10 14:24:22
只是新鮮的一雙眼睛。 – Jacco 2008-10-10 14:42:58