首页 > 代码学习

php定时删除文件夹下文件

发布时间:2011-09-21 15:04:59 来源:星知苑 作者:星之宇

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

那么有没有方法自动清理临时文件夹呢?
以下代码就是一个简单定时清理文件夹下文件的php代码。
ps:这个代码如果不重启网站会一直执行下去,所以只用作于本地环境测试,请别在网站上测试。
[break]
<?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);
  

相关合集

  • 好用的办公软件有哪些?
好用的办公软件有哪些?

简介:好用的办公软件有哪些?随着时代的进步,智能化发展也越来越快,很多数据都可以实现在线进行管理,从考勤到员工工作效率,都能在很多APP上面实现,让跟更多企业体验到更优质的服务,节约人工成本;小编今天推荐的这几款软件,还是非常适合企业去使用的,并且还非常简单高效。