opendir()
дает мне предупреждение PHP, если папка не может быть доступна.
Я могу использовать is_dir, но что, если папка будет удалена за это время:
if(is_dir($some_dir)){
// HERE, DELETED, GONE :(
$d = opendir($some_dir);
// warning !!0
}
это предупреждение испортило весь мой код обработки ошибок.
Есть ли способ манипулировать файлами без предупреждения? Ложных результатов достаточно, чтобы понять, что файл недоступен, я не понимаю, почему он должен предупредить меня тоже 🙁
Пожалуйста, не говорите мне использовать @. Там должен быть лучший путь
$d = @opendir($some_dir);
@
перед ошибками молчания функции она может возникнуть.
Тогда вы можете проверить $d
чтобы увидеть, сработало ли это или нет (Ложь, если не работает).
Ах да, спасибо комментарии, OP упомянул, чтобы не говорить о @
моя вина.
Тогда другая возможность — изменить конфигурацию php, чтобы php не выдавал предупреждений.
Попробуйте следующее, проверив, установлена ли эта переменная в первую очередь.
if(isset($some_dir)):
if(is_dir($some_dir)):
// HERE, DELETED, GONE :(
$d = opendir($some_dir);
// warning !!0
endif;
endif;
Попробуйте этот код
if(is_dir($some_dir)){
// HERE, DELETED, GONE
$d = @opendir($some_dir);
// warning
}
Если вы не хотите использовать ‘@’, тогда вы должны проверить / подтвердить, что ваш путь к каталогу в $ some_dir указан правильно