Итак, здесь начинается сложная часть. В каждом каталоге есть два подкаталога (подкаталоги также содержат файл) с именами lib и vendor. Поэтому, когда у меня было определенное имя Dir, я использовал это
<?php
$dir = $_GET['fname'];
array_map('unlink', glob("$dir/lib/*.*"));
rmdir("$dir/lib");
array_map('unlink', glob("$dir/vendor/*.*"));
rmdir("$dir/vendor");
array_map('unlink', glob("$dir/*.*"));
rmdir($dir);`
Поэтому у меня было определенное имя каталога. но теперь я хочу изменить это.
Поэтому всякий раз, когда пользователь перенаправляется на мой скрипт
Следует удалить все каталоги старше 5 минут. Только
каталоги.
Все каталоги содержат только и только 2 подкаталога с именем
lib и vendor. Они тоже должны быть удалены.
Эти три каталога не должны быть удалены проект, изображения и
assets. Кроме этих, все каталоги должны быть удалены. Сейчас
Пожалуйста, кто-нибудь Помоги мне.
Вы можете сделать это. Сначала создайте функцию для удаления каталога
function deldirectory($dir){
$tfile = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($tfile,
RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $file) {
if ($file->isDir()){
rmdir($file->getRealPath());
} else {
unlink($file->getRealPath());
}
}
return rmdir($dir);
}
Вызовите эту функцию в цикле foreach, чтобы проверить и удалить папку, которая более 5 минут
foreach ($folders as $f){
$lastmodified = filemtime($f);
$farray = array("project","images","assets");//These folders are ignored
$file_life = 300;
if((time() - $lastmodified >= $file_life) && !in_array($f, $farray)){
deldirectory($f);
}
}
Других решений пока нет …