[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удалить пустой каталог
zvezda_t
Всем привет.

Увидела в функции такой вызов:

return @rmdir($path);

Зачем поставили @ перед rmdir()?

Я удаляю файл из каталога и хочу сделать проверку, если после удаления файла - каталог пуст - то удалить и каталог.

Нужна ли такая проверка?
или можно так оставить:
//удаление файла 
if(unlink('./uploads/'.$id.'/'.$file))
{
//удаление инфы из БД
$this->Files_mod->del_files($id,$file);

//удаление каталога - удалиться если в нем нет файлов
rmdir('./uploads/'.$id);
}


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Dezigo
@ - подавление ошибок.
Лучше не использовать его вооообще.
А делать через exception
zvezda_t
Dezigo, как в итоге написать то?


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
zvezda_t
такая ф-ция подойдет?

//функция проверки пустой ли каталог
function is_empty_dir($dir)
{
if (($files = @scandir($dir)) && count($files) <= 2) {
return true;
}
return false;
}


здесь тоже сабачка есть

_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Dezigo
Я ошибься, эта функция не выкидывает exception, она викидывает предупреждения , а их отловить через error_get_last(); можно.
Тогда всё правильно у тебя.

if (!@rmdir('/root')) {
$error = error_get_last();

if (preg_match('/something/', $error['message'])) {
// do something
} elseif (preg_match('/somethingelse/', $error['message'])) {
// do something
}
}


Собачка подавляет ошибки - у тебя не выскакивает warning notice.

В реальном проекте собачку не используют по тем причинам, что не возможно отловить ошибку., но есть исключение.
Dezigo
Цитата (zvezda_t @ 4.07.2013 - 09:08)
такая ф-ция подойдет?

//функция проверки пустой ли каталог
function is_empty_dir($dir)
{
if (($files = @scandir($dir)) && count($files) <= 2) {
return true;
}
return false;
}


здесь тоже сабачка есть

Пойдёт, так как ты проверяешь на наличии файлов в директории.
HErATuB
Цитата (Dezigo @ 4.07.2013 - 08:57)
@ - подавление ошибок.

Собака не кусака)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.