Удаление всех файлов из каталога кроме нужных (.htaccess)?

Статус
В этой теме нельзя размещать новые ответы.

usergeyv

Знаток
Регистрация
5 Июл 2013
Сообщения
152
Реакции
25
Скрипт удаления файлов с директории
PHP:
$dir = 'engine/cache/system/';
$it = new RecursiveDirectoryIterator($dir);
$files = new RecursiveIteratorIterator($it,
             RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $file) {
    if ($file->getFilename() === '.' || $file->getFilename() === '..') {
        continue;
    }
    if ($file->isDir()){
        rmdir($file->getRealPath());
    } else {
        unlink($file->getRealPath());
    }
}

как исключить удалять файл
Код:
.htaccess
 
Код:
$dir = 'engine/cache/system/';
$it = new RecursiveDirectoryIterator($dir);
$files = new RecursiveIteratorIterator($it,
             RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $file) {
    if ($file->getFilename() === '.' || $file->getFilename() === '..') {
        continue;
    }
    if ($file->isDir()){
        rmdir($file->getRealPath());
    } else {
       if(!preg_match('/.htaccess/',$file->getRealPath()))
       {
       unlink($file->getRealPath());
       }      
    }
}
 
Код:
$dir = 'engine/cache/system/';
$it = new RecursiveDirectoryIterator($dir);
$files = new RecursiveIteratorIterator($it,
             RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $file) {
    if ($file->getFilename() === '.' || $file->getFilename() === '..') {
        continue;
    }
    if ($file->isDir()){
        rmdir($file->getRealPath());
    } else {
       if(!preg_match('/.htaccess/',$file->getRealPath()))
       {
       unlink($file->getRealPath());
       }     
    }
}
Спасибо ,работает
 
Работает конечно, только preg_match там избыточен, лучше заменить на
$file->getFilename() === '.htaccess' и углубление уровней вложенности плохо читается...

PHP:
    if ($file->isDir()){
        rmdir($file->getRealPath());
        continue;
    }
    if($file->getFilename() !== '.htaccess')
    {
       unlink($file->getRealPath());
       continue; //на всякий случай ;)
    }
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху