Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка сущестивования директории
 
 автор: Владимир55   (17.03.2008 в 19:39)   письмо автору
 
 

В корне сайта имеется директория с именем abc

Как назвать ее при проверке существования?


    if (@opendir("abc"))  echo "Директория существует"; 


Или нужны дефисы, точка?

   
 
 автор: AVS   (17.03.2008 в 19:46)   письмо автору
 
   для: Владимир55   (17.03.2008 в 19:39)
 

Как угодно. Лишь бы это соответствовало правилам ОС.

   
 
 автор: Wunderbar   (17.03.2008 в 19:47)
 
   для: Владимир55   (17.03.2008 в 19:39)
 

А ты всегда хм с закрытыми глазами пытаешься нащупать дверную ручку, не будучи уверенным, что она вообще есть в данном месте (может двери нет или она открыта)? Надо сначала посмотреть впереди себя.

Тебе нужна функция is_dir(), а код такой:

<?php
if( is_dir($_SERVER['DOCUMENT_ROOT'] . '/abc') )
{

}
?>

   
 
 автор: AVS   (17.03.2008 в 20:04)   письмо автору
 
   для: Wunderbar   (17.03.2008 в 19:47)
 

Ну зачем же так грубо. С одной стороны он правильно делает. Запуск лишней функции - это время и ресурсы. Пусть это ничтожные ресурсы и время, но все же при разработке приложений не стоит этим так пренебрегать. Да и если на ветке Else идет открытие файла, то ничего страшного и безобразного в этом подходе нет.

   
 
 автор: Wunderbar   (17.03.2008 в 20:08)
 
   для: AVS   (17.03.2008 в 20:04)
 

Ты бы сначала подумал, прежде чем защищать его. Он нифига не открывает директорию для считывания (он не указал переменную для возвращения resource_id), а таким образом именно проверяет. Он открывает новый процесс, что точно хуже простой проверки.

   
 
 автор: AVS   (17.03.2008 в 20:24)   письмо автору
 
   для: Wunderbar   (17.03.2008 в 20:08)
 

А запуск is_dir() - это что такое? Такой же вызов функции как и opendir(). Разницы нет. Так как обе они вернут FALSE в случае отсутствии директории. is_dir() - хорош для читабельности. Другой случай. is_dir() вернет true в случае существования директории. А вот если у нас отсутствуют на нее пара? Вот тут opendir() убивает 2 зайца сразу. Она проверит и существование, и наличие прав. Или прикажите вызывать еще и функцию проверки на права? Тогда код, который можно сделать компактным, станет более грамозким.

   
 
 автор: Wunderbar   (17.03.2008 в 20:28)
 
   для: AVS   (17.03.2008 в 20:24)
 

opendir() открывает директорию, т.е. создает новый процесс, который будет висеть в лучшем случае до конца работы скрипта (при таком коде), а is_dir() только проверяет директория ли указанный путь. Совершенно разные функции.

[поправлено модератором]

   
 
 автор: Владимир55   (17.03.2008 в 23:41)   письмо автору
 
   для: AVS   (17.03.2008 в 20:24)
 

В моем случае, если директория существует, то она очищается.

Большое спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования