首页 > 代码学习

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

相关合集

  • 非常烧脑的解谜推理游戏
非常烧脑的解谜推理游戏

简介:在现在人的头脑中都是有一个非常喜欢逻辑思维分析的,那么在游戏中也是可以存在的非常的好玩的解谜,又是能够杀死很多的脑细胞的推理游戏,相当的精彩的各种好玩的烧脑游戏全都推荐给你,有着很多的不同的游戏还有玩法,都是很烧脑的非常的好玩,绝对是值得你去下载娱乐,增加自己的智慧。