Помогите с PHP

malls
На сайте с 08.08.2005
Offline
255
432

Делаю как бабка велит:

if ($handle = opendir("dirrectory")) {

while (false !== ($file = readdir($handle))) {
if (is_dir($file) && $file != "." && $file != ".."){

echo $file." - DIR<br>";

}
}
closedir($handle);
}

Нифига не дает! Причем ни на Денвере, ни на серваке. Самое дибильное что аналогичная конструкция юзается вполне себе на сервере в соседней дирректории.

Убираем is_dir:

if ($handle = opendir("dirrectory")) {

while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".."){

echo $file." - DIR<br>";

}
}
closedir($handle);
}

Все работает, но как и следовало ожидать сливает и дирректории и файлы.

В чем проблема может быть?

ЗЫ: is_file - тоже гад не работает.

BR
На сайте с 28.06.2008
Offline
75
#1

При работе PHP в safe_mod могут быть проблемы с правами на файлы/папки из-за чего is_dir не сработает. Проверьте логи, нет ли там сообщений об ошибках.

размещение сайтов (http://www.brim.ru)
edogs software
На сайте с 15.12.2005
Offline
775
#2

$file - содержит само имя файла и всё.

Но сам файл, с этим именем находится в директории dirrectory

Поэтому правильно писать is_dir('dirrectory/'.$file)

Иначе Вы имя файла считываете из директории dirrectory, а проверяете "директория ли он" прямо в текущей.

Так же есть смысл сделать перед началом считывания директории clearstatcache();

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
psylosss
На сайте с 23.12.2005
Offline
126
#3

потому что надо is_dir("dirrectory/".$file)

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
malls
На сайте с 08.08.2005
Offline
255
#4
edogs:
$file - содержит само имя файла и всё.
Но сам файл, с этим именем находится в директории dirrectory
Поэтому правильно писать is_dir('dirrectory/'.$file)
Иначе Вы имя файла считываете из директории dirrectory, а проверяете "директория ли он" прямо в текущей.

Так же есть смысл сделать перед началом считывания директории clearstatcache();

Шайтан арба! И правда! :)

Спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий