Intereting Posts

Проверьте, существует ли каталог в PHP

Я знаю, я знаю , это звучит очень легко. Но я не могу найти правильный ответ в Интернете.

Одним из решений, которое я нашел, было использование is_dir .

 if(is_dir($dir)) echo 'directory exists'; else echo 'drectory not exist'; 

Но это неправильно. Вся эта функция проверяет, является ли каталог $dir каталогом, он не проверяет, существует ли каталог, или нет. Другими словами, если я поставлю:

 $rootDir = "C:\\Documents and Settings\\test\\My Documents\\Image Directory\\Me Dog\\"; 

то функция вернет true, даже если вы не найдете такой каталог на своем веб-сервере.

Есть идеи?

Solutions Collecting From Web of "Проверьте, существует ли каталог в PHP"

Должен работать правильно. Из документа is_dir() :

Возвращает TRUE, если имя файла существует и является каталогом , FALSE в противном случае.

Ну, в любом случае, если это не попытка:

 if(file_exists($dir) && is_dir($dir)) 

КСТАТИ. результаты этих функций кэшируются в кете stat. Используйте clearstatcache () для очистки этого кеша.

Вероятно, вы захотите использовать opendir () после того, как is_dir () соглашается с тем, что путь (может) быть каталогом.

Если ресурс, возвращаемый opendir (), действителен, вы знаете, что у вас есть каталог и уже имеете дескриптор для его чтения.

Просто не забудьте вызвать closedir (), в любом случае, если возвращается действительный дескриптор.

Редактировать:

Этот ответ предполагает, что вы откроете каталог в любом случае. Если вам просто нужно убедиться, что путь нормальный / действительный, file_exists () намного дешевле.

Вы можете попробовать следующее:

 if(is_dir($dir) && is_writeable($dir)) { // ... } 
 bool file_exists ( string $filename ) 

Проверяет, существует ли файл или каталог.

http://php.net/manual/en/function.file-exists.php