Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Удаление файлов с определённым расширением. |

09.03.2010, 20:41
|
|
Новичок
Регистрация: 05.04.2008
Сообщений: 29
Провел на форуме: 115146
Репутация:
6
|
|
Удаление файлов с определённым расширением.
Здравствуйте ребята!
Помогите написать PHP скрипт, который будет удалять все файлы с определённым расширением с заданных каталогов на сайте, намерен запускать скрипт через крон задания, главное, нужно одним запуском удалять файлы из нескольких папок на сайте.
Спасибо! + за мной
|
|
|

09.03.2010, 20:46
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Для одной папки:
Код:
$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.'"'; }
}
Последний раз редактировалось Deathdreams; 09.03.2010 в 21:24..
|
|
|

09.03.2010, 22:50
|
|
Постоянный
Регистрация: 20.12.2007
Сообщений: 334
Провел на форуме: 1934122
Репутация:
118
|
|
PHP код:
<?php
$paths = array('path1/', 'path2/');
$ext = 'txt';
foreach($paths as $p)
system("rm -f {$p}*.{$ext}");
?>
|
|
|

09.03.2010, 23:28
|
|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме: 1698585
Репутация:
818
|
|
Deathdreams
А если имя файла "file.file.txt.exe" ?
shellz[21h]
А если system() нельзя, как на большинстве хостингов?
|
|
|

09.03.2010, 23:54
|
|
Новичок
Регистрация: 05.04.2008
Сообщений: 29
Провел на форуме: 115146
Репутация:
6
|
|
Deathdreams, Спасибо! работает.
shellz[21h], несработало, файлы не удалил скрипт, наверное у меня отключена функция system()
|
|
|

09.03.2010, 23:57
|
|
Постоянный
Регистрация: 20.12.2007
Сообщений: 334
Провел на форуме: 1934122
Репутация:
118
|
|
А если system() нельзя, как на большинстве хостингов?
на большинстве это на бесплатных, вариант не универсальный конечно)
|
|
|

10.03.2010, 00:39
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Сообщение от b3
Deathdreams
А если имя файла "file.file.txt.exe" ?
А тебя учили полностью читать код, а не открывками ?
end(explode(".", $file));
Надеюсь, функция end() о чём-нибудь говорит.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|