У меня проблема при использовании is_dir, когда я перебираю все файлы в определенном каталоге. Код небольшой, поэтому я думаю, вы лучше поймете, что я имею в виду, если я его опубликую:
$files = array();
if ($dir = @opendir($folder)){
while($file = readdir($dir)){
if (is_dir($file)) $files[] = $file;
}
closedir($dir);
}
print_r($files)
Он сбрасывает: ( [0] => . )
В противном случае, если я не проверю, является ли файл каталогом, используя этот код:
$files = array();
if ($dir = @opendir($folder)){
while($file = readdir($dir)){
$files[] = $file;
}
closedir($dir);
}
print_r($files)
Выдает ожидаемое: ([0] => .. [1] => bla [2] => blablabla [3] => index.php [4] => styles.css [5] => . )
Я предполагаю, что это просто какая-то нубская проблема с использованием переменной $file в качестве параметра, но я не знаю, как заставить ее работать.
Спасибо за чтение!
glob("*",GLOB_ONLYDIR)
. Если это так, проблема уже решена ;) - person Niet the Dark Absol   schedule 08.05.2012.
и..
— это специальные каталоги, которые автоматически появляются в КАЖДОМ каталоге..
= текущий каталог,..
= родительский каталог. Если вы не отфильтруете их, они всегда будут отображаться в opendir/readdir. - person Marc B   schedule 08.05.2012