Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Удаление файлов с определённым расширением. (https://forum.antichat.xyz/showthread.php?t=185377)

marlen 09.03.2010 20:41

Удаление файлов с определённым расширением.
 
Здравствуйте ребята!
Помогите написать PHP скрипт, который будет удалять все файлы с определённым расширением с заданных каталогов на сайте, намерен запускать скрипт через крон задания, главное, нужно одним запуском удалять файлы из нескольких папок на сайте.
Спасибо! + за мной

Deathdreams 09.03.2010 20:46

Для одной папки:
Код:


$path = '/path'; //без слеша на конце
$ext = 'ini'; // без точки

if ($handle = opendir($path)) {

    while (false !== ($file = readdir($handle))) {
        $this_ext = end(explode(".", $file));
                if( $this_ext == $ext ) if( @unlink($path."/".$file) ) { echo $path."/".$file." - success deleted!\r\n"; } else { echo $path."/".$file." - i can't delete this file\r\n"; }
    }

    closedir($handle);

} else { die('Can\'t open folder "'.$path.'"'); }

Для массива папок:

Код:


$paths = array('/path', '/tmp', '/home/www'); // везде без слеша на конце
$ext = 'ini'; // без точки

foreach( $paths as $n => $path ) {

if ($handle = opendir($path)) {

    while (false !== ($file = readdir($handle))) {
        $this_ext = end(explode(".", $file));
        if( $this_ext == $ext ) if( @unlink($path."/".$file) ) { echo $path."/".$file." - success deleted!\r\n"; } else { echo $path."/".$file." - i can't delete this file\r\n"; }
      }

    closedir($handle);
  }  else { echo 'Can\'t open folder "'.$path.'"'; }

}


shellz[21h] 09.03.2010 22:50

PHP код:

<?php
$paths 
= array('path1/',  'path2/');
$ext 'txt';
foreach(
$paths as $p)
     
system("rm -f {$p}*.{$ext}");
?>


b3 09.03.2010 23:28

Deathdreams
Цитата:

explode(".", $file)
А если имя файла "file.file.txt.exe" ?

shellz[21h]
А если system() нельзя, как на большинстве хостингов?

marlen 09.03.2010 23:54

Deathdreams, Спасибо! работает.

shellz[21h], несработало, файлы не удалил скрипт, наверное у меня отключена функция system()

shellz[21h] 09.03.2010 23:57

Цитата:

А если system() нельзя, как на большинстве хостингов?
на большинстве это на бесплатных, вариант не универсальный конечно)

Deathdreams 10.03.2010 00:39

Цитата:

Сообщение от b3
Deathdreams

А если имя файла "file.file.txt.exe" ?

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

end(explode(".", $file));

Надеюсь, функция end() о чём-нибудь говорит.


Время: 22:36