Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

скрипт отчистки папки
Сообщения
Sat

Всем привет,дайте файлик,для отчистки папки tmp чтоб на крон поставить. Слетает постоянно авторизация в грабе спейса,пока вручную файл ses.dat в папке tmp неотчищу +18 загрузки недоступны,и так раз 10 надень пробовал несколько скриптов,неочищает.может из за прав на папке? Помогите плиз

13 Окт 2012, 16:36
Pro100user

<?
$way = 'tmp/';
$dir = opendir($way);
while ($file = readdir($dir))
{
if($file != '.' AND $file != '..' AND $file != '.htaccess')
{
unlink($way . $file);
}
}
closedir($dir);

echo 'Очищено!';
?>

13 Окт 2012, 16:59
Башка


function clearDir($dirName){
  if(!fileExists($dirName))
    throw new \RuntimeException('Требуемого каталога не существует.');
  foreach(new \DirectoryIterator('адрес до папки') as $v){
    $filename = $v->getFilename();
    if($filename == '.' || $filename == '..') continue;
    if($v->isDir()){
      clearDir($filename);
      rmdir($filename);
    }
    else
      unlink($filename);
  }
}

13 Окт 2012, 18:09
Okula

Башка, сказал бы что функция должна исполняться в блоке try {} catch() {}

13 Окт 2012, 18:14
Sat

спасибо,попробую

13 Окт 2012, 20:19
Башка

Okula, зачем?

13 Окт 2012, 20:47
Okula

Башка, чтобы, в случае чего, поймать исключение которое ты выбрасываешь:
throw new \RuntimeException('Требуемого каталога не существует.');

13 Окт 2012, 21:07
Башка

А если я не выбрасываю исключение и не делаю проверку вообще, ошибку ловить не надо?

13 Окт 2012, 22:34
Okula

Башка, причём тут это? Я говорю о том что исполнение этой функции должно быть в блоке try {} catch() {} иначе будет вызвана фатальная ошибка о непойманом исключении, если возникнет проблема в работе скрипта (например отсутствие папки).

13 Окт 2012, 22:39
Башка

А я спрашиваю - если не использовать ни try catch, ни throw, то ловить ошибки не нужно? Или они не появятся при отсутствующей папке?

13 Окт 2012, 22:51
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.