Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Ошибка в opendir() - No error


Автор: Elfer 19.3.2012, 15:05
Сегодня столкнулся с такой проблемой: в php-скрипте некоторые папки не хочет читать. Обращаюсь следующим образом:
Код

$img_path = './files/icons/aroma2/';
if ($dir = opendir($img_path)) {
    while (($file = readdir($dir)) !== false) {
        if ($file == '.' or $file == '..' or preg_match("/\.html$/", $file) or preg_match("/\.htm$/", $file) or preg_match("/\.php$/", $file) or preg_match("/\.db$/", $file)) continue;
        $images = $file;
    }
    closedir($dir);
}

В ответ ошибка и выполнение останавливается:
Warning: opendir(../files/icons/aroma2/) [function.opendir]: failed to open dir: No error in ...\files\icons\check.php on line 51
51 строчкой как раз является "if ($dir = opendir($img_path)) {". Искал решение проблемы через гугл. Нашел только одно - смените Apache и что эта ошибка возникает из-за прав, мол не хватает прав, чтобы обратиться к директории.
У меня стоит Денвер 3, Windows XP, уже несколько лет пользуюсь этой версией Денвера и ни разу такого косяка не было. Причем не только эту папку не может прочитать, многие папки, причем то читает, то через 5 минут не читает. С подобным сталкиваюсь впервые. Срочно нужно отпарсить кучу папок, но сталкиваюсь с ошибкой "No error" и скрипт останавливается. Пробовал перезагружать комп, Денвер перезагружал, в браузере другом пробовал - всё бесполезно. Пока пишу вам это сообщение - заработали папки - стали читаться. Через 5 минут снова перестали. Прошу помочь с решением проблемы.

Автор: cia 24.3.2012, 22:09
На юниксе встречался с подобным - проблема была во владельце файла.
В XP... может быть банальный вирус на компьютере? Видел такое, что вирус мешает нормальному копированию файлов в windows. Причём файлы то копируются, то вылетает ошибка "неправильный дескриптор файла".

Автор: Elfer 25.3.2012, 16:29
Стоит Касперский 2011, обновленный с активированным ключиком. Антивирус никогда не выключаю. Поэтому шансы заразиться минимальные. Сейчас работает всё нормально. Чёрт его знает, что это такое было. С подобным встречался впервые. Особенно удивился, что ошибка вида No error. Т.е. по сути и ошибка и по сути, нет ошибки. Какая-то муть ))

Автор: Sentox 25.3.2012, 19:47
Попробуйте интегрировать и использовать расширение для YII `CFile`:
http://www.yiiframework.com/extension/cfile/

Автор: cia 26.3.2012, 13:38
Цитата(Sentox @  25.3.2012,  19:47 Найти цитируемый пост)
Попробуйте интегрировать и использовать расширение для YII `CFile`

А чем это может помочь автору?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)