Просмотр полной версии : Удаление файлов с определённым расширением.
Здравствуйте ребята!
Помогите написать 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
$paths = array('path1/', 'path2/');
$ext = 'txt';
foreach($paths as $p)
system("rm -f {$p}*.{$ext}");
?>
Deathdreams
explode(".", $file)
А если имя файла "file.file.txt.exe" ?
shellz[21h]
А если system() нельзя, как на большинстве хостингов?
Deathdreams, Спасибо! работает.
shellz[21h], несработало, файлы не удалил скрипт, наверное у меня отключена функция system()
shellz[21h]
09.03.2010, 23:57
А если system() нельзя, как на большинстве хостингов?
на большинстве это на бесплатных, вариант не универсальный конечно)
Deathdreams
10.03.2010, 00:39
Deathdreams
А если имя файла "file.file.txt.exe" ?
А тебя учили полностью читать код, а не открывками ?
end(explode(".", $file));
Надеюсь, функция end() о чём-нибудь говорит.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot