![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| ANDeath |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 9.4.2006 Где: Краснодар Репутация: нет Всего: нет |
Подскажите как средствами php проверить существует ли директория?
С файлами вроде все просто: можно юзать fopen, которая в подобном случае возвращает false, а вот с функциями opendir и dir, подобное, как показал опыт, не прокатывает... Заранее благодарю... |
|||
|
||||
| Rexar |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 14.12.2005 Репутация: нет Всего: 0 |
is_dir
Проверка существования каталога. Синтаксис : bool is_dir(string filename) Возвращает true, если каталог filename существует. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Проверять opendir.
|
|||
|
||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
||||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
и? is_dir глючит часто... А так - 100% результат.
|
|||
|
||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
и имеем жирные лог файлы =) или вообще на некоторых хостах юзер ловит в браузере. Да можно собаку, но кто то другой отлаживая код будет долго биться "а почему белый экран?!? и ошибок нет". пример. |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 3 Всего: 71 |
||||
|
||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
||||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Ты меня извини, конечно, но ОТЛАДКА скрипта должна производится по соответствующим концепциям. ПХП все дает настраивать. Система должна работать так, быть отлаженой так, чтобы никаких длинных лог файлов не было. А использование @ лично я считаю, простите, ламерством и неумением отловить ошибку. Да, есть случаи, когда @ НЕОБХОДИМА. А ты поработай с языком годика два на разных серверах, увидешь. |
|||
|
||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
Хорошо, уважаемый.
Два клиента работают с директорией оба могут работать с ней (читать, переименовывать и даже удалять). Как мы будем проверять на ДЕЙСТВУЮЩЕМ проекте существование директории? В релизе (на работающем сервере) я не хочу отключать ошибки (уровень E_ALL & ^E_NOTICE) - пишу их в лог файл. Ваши действия? |
|||
|
||||
| arial |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 772 Регистрация: 11.3.2003 Где: Архангельская обл . Репутация: 6 Всего: 7 |
@opendir - ошибки в логах нет.
-------------------- Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская) |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
А вот тут, и есть проблема. В релизе, работающей системе, вывод ошибок ДОЛЖЕН БЫТЬ ПОДАВЛЕН !!! Система должна работать так, чтобы не генерировать ошибки. Это - качество. Учите технологию. Что касается лога, то...Я не думаю, и как показывает практика, он не такой ж и огромный... И Некоторые вещи можно и в лог писать и время от времени чистить. |
|||
|
||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
Совсем, совсем? Т.е. Вы хотите сказать, что ситуация с отвалившимся SQL сервером (выдается Warning) является штатной и в логах отражаться не должна?
Отлично, рассмотрим ситуацию №2. Вы пошли по принципу подавление вывода ошибок (как я понял система, даже если и имеет ошибку ни за что не выведет ее в браузер (кроме E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING) и не запишет в лог). Поставили error_reporting(0) или @opendir(). Все отлично, все работает, все замечательно. Прошел год, Вы ушли со старой работы на новую, на Ваше место пришел другой программист. Система все так же работает нормально, но попросили нового человека модифицировать работу системы как раз там в области работы с директориями (например ситуацию №1 реалтзовать). Естественно по доброте душевной Вы не оставили dev версии и работа будет осуществляться с release версией. Ну и последнее, наверное. http://www.php.net/opendir - Example 1. opendir() example. Не думаю, что создатели мана желают плохого =) P.S. ради интереса посмотрел проблемы по is_dir. Первая проблема, всегда возвращает true под Win XP sp2 имя директории > 256 символов. И под *NIX с правами доступа, если не хватает прав на чтение - всегда true. Обе специфичны... |
|||
|
||||
| Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Да? А обработать нельзя? В 5 уже и try/catch есть... И? ПОдавленмие ошибок выключается на уровне сервера через .htaccess, этим отличается релиз версия от дебага...
Не пожелают, но создатели мана пишут его для самых тупых, для того, чтобы можно было понять суть. Переносить полностью код из мана в реальный проект не всегда оптимально и правильно !!! |
||||
|
|||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
Я не спорю про обработку =) if (!$handler ) { die('Error'); } Но лог полезен что бы того же хостера потыкать носом. Тут тебе и время и служебная информация.
Ушел включать на Apache c AllowOverride None в httpd.conf и IIS. что Вы так нервничаете? =) Мне вот не ясно какая суть преследовалась при использовании is_dir() с opendir(), наверное, заговор супер-макак. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |