Я хочу удалить все каталоги старше 5 минут?

Итак, здесь начинается сложная часть. В каждом каталоге есть два подкаталога (подкаталоги также содержат файл) с именами 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. Кроме этих, все каталоги должны быть удалены. Сейчас

Пожалуйста, кто-нибудь Помоги мне.

0

Решение

Вы можете сделать это. Сначала создайте функцию для удаления каталога

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);
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]