我已經在我的網絡服務器,其中.html文件存儲在一個「緩存」的文件夾,文件結構如下:刪除所有文件,包括子目錄中舊的3個月內PHP
cache > [email protected] > several .html files.
我需要一個PHP腳本,它將瀏覽用戶文件夾中的所有子目錄,並刪除3個月以前的文件。
我到目前爲止這個腳本:
$DIR = '/cache/';
if ($handle = opendir($DIR)) {
while (false !== ($file = readdir($handle))) {
if (filemtime($DIR.$file) <= time()-60*60*24*120) { //120 days?
unlink($DIR.$file);
}
}
closedir($handle);
}
但它不處理子目錄。它也給我的錯誤,因爲它試圖取消鏈接directorys ..
更新:嘗試添加計數功能:
<?php
rrmdir(/www/deletecontentsofthisfolder/);
echo $count . ' files deleted!';
function rrmdir($dir,$count=0)
{
if (is_dir($dir))
{
$objects = scandir($dir);
foreach ($objects as $object)
{
if ($object != "." && $object != "..")
{
if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object,$count);
if (filemtime($dir."/".$object) <= time()-60*60*24*120) @unlink($dir."/".$object); count++
}
}
reset($objects);
//rmdir($dir);
}
return $count;
}
代碼是不是宗教,你可以嘗試的東西,沒有風險去地獄:)) – moonwave99
你可以看看[Symfony文件系統組件](http://symfony.com/doc/current/components/filesystem.html),它允許你遞歸地刪除目錄 –
Extend它處理子目錄,當你遇到問題時,在這裏提出一個問題。這一個不是問題。 – markus