PHP删除目录下指定时间天数前的文件

后端开发   发布日期:2023年05月19日   浏览次数:468

实现的功能及参考示例中包括:PHP删除目录及子目录下的文件(绝对路径或相对路径)、PHP判断目录是否有空、PHP获取文件的创建修改时间、PHP删除指定时间天数前的文件。

filemtime() 函数返回指定文件的修改时间。

filectime() 函数返回指定文件的创建时间。

注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。

具体代码:

  1. <?
  2. date_default_timezone_set ("PRC");//设置时区
  3. function is_empty_dir($pathdir) {
  4. //判断目录是否为空
  5. $d=opendir($pathdir);
  6. $i=0;
  7. while($a=readdir($d)){
  8. $i++;
  9. }
  10. closedir($d);
  11. if($i>2){
  12. return false;
  13. }else{
  14. return true;
  15. }
  16. }
  17. function deldir($path){
  18. //如果是目录则继续
  19. if(!file_exists($path)){
  20. echo "目录不存在!!!";
  21. exit;
  22. }
  23. if(is_dir($path)){
  24. //扫描一个文件夹内的所有文件夹和文件并返回数组
  25. $p = scandir($path);
  26. //如果 $p 中有两个以上的元素则说明当前 $path 不为空
  27. if(count($p)>2){
  28. foreach($p as $val){
  29. //排除目录中的.和..
  30. if($val !="." && $val !=".."){
  31. //如果是目录则递归子目录,继续操作
  32. if(is_dir($path.$val)){
  33. //子目录中操作删除文件夹和文件
  34. deldir($path.$val.'/');
  35. }else{
  36. //如果是文件直接删除
  37. echo "文件:".$path.$val.",创建时间:".date("Y-m-d H:i:s",filectime($path.$val))."<br />";
  38. if (filectime($path.$val)<(time()-7*24*3600)){
  39. echo "此文件早于7天前,将被删除:".$path.$val;
  40. unlink($path.$val);
  41. }
  42. }
  43. }
  44. }
  45. }
  46. }
  47. //删除目录(必须是空的,否则返回Directory not empty)
  48. if (is_empty_dir($path)===false){
  49. echo "错误:文件夹删除非空";
  50. exit;
  51. }else{
  52. //删除成功
  53. rmdir($path);
  54. }
  55. }
  56. //设置需要删除的文件夹
  57. $path = "E:\\777\\";//删除的目录,绝对路径,以\\结尾
  58. //$path = "777/";//删除的目录,相对路径,以/结尾
  59. echo "被删除路径:".$path."<br />";
  60. deldir($path);
  61. ?>

以上就是PHP删除目录下指定时间天数前的文件的详细内容,更多关于PHP删除目录下指定时间天数前的文件的资料请关注九品源码其它相关文章!