php定时删除文件夹下文件

有的时候网站缓存文件夹里生成的临时文件越来越多,而长时间不清理就会造成文件夹下有上万个缓存文件,可能会使ftp工具多无法进入其文件夹。使临时文件无法删除。

那么有没有方法自动清理临时文件夹呢?
以下代码就是一个简单定时清理文件夹下文件的php代码。
ps:这个代码如果不重启网站会一直执行下去,所以只用作于本地环境测试,请别在网站上测试。
<?php
ignore_user_abort(); //客户端断开时,可以让脚本继续在后台执行
set_time_limit(0);   //忽略php.ini设置的脚本运行时间限制
$interval = 5*60;      //设置执行周期,单位为秒,5分钟为 5*60=300
do{
  $dir = "temp/";   //你的临时目录位置
  $handle=opendir("{$dir}/");
  while (false !== ($file=readdir($handle))) {
    if ($file!="." && $file!=".."  && !is_dir("{$dir}/{$file}")) {
      @unlink ("{$dir}/{$file}");
               }
       }
    closedir($handle); //关闭由 opendir() 函数打开的目录
    sleep($interval);   //执行一个周期后,休眠$interval时间,休眠结束后脚本继续执行  
}while(true);     //周期性执行脚本


根据网上的一个思路来的,建一个flag.txt文件,在里面输入1或者0,“0”表示停止执行,“1”表示继续执行。这样的话就可以开始和停止了。
<?php
$flag = 1; //将执行标志设置为1,默认为执行
ignore_user_abort(); //客户端断开时,可以让脚本继续在后台执行
set_time_limit(0);   //忽略php.ini设置的脚本运行时间限制
$interval = 5*60;      //设置执行周期,单位为秒,5分钟为 5*60=300
do{
    $flagfile = "flag.txt";   //标志放置在文件“flag.txt”中。“0”表示停止执行,“1”表示继续执行
    if(file_exists($flagfile) && is_readable($flagfile)) { //读取文件内容
        $fh = fopen($flagfile,"r");        
        while (!feof($fh)) {
            $flag = fgets($fh);   //存储标志
        }      
        fclose($fh);
    }
  $dir = "temp/";   //你的临时目录位置
  $handle=opendir("{$dir}/");
  while (false !== ($file=readdir($handle))) {
    if ($file!="." && $file!=".."  && !is_dir("{$dir}/{$file}")) {
      @unlink ("{$dir}/{$file}");
               }
       }
    closedir($handle); //关闭由 opendir() 函数打开的目录
    sleep($interval);   //执行一个周期后,休眠$interval时间,休眠结束后脚本继续执行  
}while($flag);
  
  • 下载列表

目前有 0 条评论

昵称
邮箱
主页
提交
订阅