那么有没有方法自动清理临时文件夹呢?
以下代码就是一个简单定时清理文件夹下文件的php代码。
ps:这个代码如果不重启网站会一直执行下去,所以只用作于本地环境测试,请别在网站上测试。
<BR><?php <BR>ignore_user_abort(); //客户端断开时,可以让脚本继续在后台执行 <BR>set_time_limit(0); //忽略php.ini设置的脚本运行时间限制 <BR>$interval = 5*60; //设置执行周期,单位为秒,5分钟为 5*60=300 <BR>do{ <BR>$dir = "temp/"; //你的临时目录位置 <BR>$handle=opendir("{$dir}/"); <BR>while (false !== ($file=readdir($handle))) { <BR>if ($file!="." && $file!=".." && !is_dir("{$dir}/{$file}")) { <BR>@unlink ("{$dir}/{$file}"); <BR>} <BR>} <BR>closedir($handle); //关闭由 opendir() 函数打开的目录 <BR>sleep($interval); //执行一个周期后,休眠$interval时间,休眠结束后脚本继续执行 <BR>}while(true); //周期性执行脚本 <BR>
根据网上的一个思路来的,建一个flag.txt文件,在里面输入1或者0,“0”表示停止执行,“1”表示继续执行。这样的话就可以开始和停止了。
<BR><?php <BR>$flag = 1; //将执行标志设置为1,默认为执行 <BR>ignore_user_abort(); //客户端断开时,可以让脚本继续在后台执行 <BR>set_time_limit(0); //忽略php.ini设置的脚本运行时间限制 <BR>$interval = 5*60; //设置执行周期,单位为秒,5分钟为 5*60=300 <BR>do{ <BR>$flagfile = "flag.txt"; //标志放置在文件“flag.txt”中。“0”表示停止执行,“1”表示继续执行 <BR>if(file_exists($flagfile) && is_readable($flagfile)) { //读取文件内容 <BR>$fh = fopen($flagfile,"r"); <BR>while (!feof($fh)) { <BR>$flag = fgets($fh); //存储标志 <BR>} <BR>fclose($fh); <BR>} <BR>$dir = "temp/"; //你的临时目录位置 <BR>$handle=opendir("{$dir}/"); <BR>while (false !== ($file=readdir($handle))) { <BR>if ($file!="." && $file!=".." && !is_dir("{$dir}/{$file}")) { <BR>@unlink ("{$dir}/{$file}"); <BR>} <BR>} <BR>closedir($handle); //关闭由 opendir() 函数打开的目录 <BR>sleep($interval); //执行一个周期后,休眠$interval时间,休眠结束后脚本继续执行 <BR>}while($flag); <BR>
php删除文件夹及其文件夹下所有文件
<BR><? <BR>function deldir($dir) { <BR>//先删除目录下的文件: <BR>$dh=opendir($dir); <BR>while ($file=readdir($dh)) { <BR>if($file!="." && $file!="..") { <BR>$fullpath=$dir."/".$file; <BR>if(!is_dir($fullpath)) { <BR>unlink($fullpath); <BR>} else { <BR>deldir($fullpath); <BR>} <BR>} <BR>} <BR>closedir($dh); <BR>//删除当前文件夹: <BR>if(rmdir($dir)) { <BR>r<a style="color:transparent">本@文来源gao($daima.com搞@代@#码(网5</a><strong>搞gaodaima代码</strong>eturn true; <BR>} else { <BR>return false; <BR>} <BR>} <BR>?> <BR>
实例:删除某个文件夹下的所有“.svn”文件夹(包括其内容也要被删除).
<BR><?php <BR>function delsvn($dir) { <BR>$dh=opendir($dir); <BR>//找出所有".svn“ 的文件夹: <BR>while ($file=readdir($dh)) { <BR>if($file!="." && $file!="..") { <BR>$fullpath=$dir."/".$file; <BR>if(is_dir($fullpath)) { <BR>if($file==".svn"){ <BR>delsvndir($fullpath); <BR>}else{ <BR>delsvn($fullpath); <BR>} <BR>} <BR>} <BR>} <BR>closedir($dh); <BR>} <BR>function delsvndir($svndir){ <BR>//先删除目录下的文件: <BR>$dh=opendir($svndir); <BR>while($file=readdir($dh)){ <BR>if($file!="."&&$file!=".."){ <BR>$fullpath=$svndir."/".$file; <BR>if(is_dir($fullpath)){ <BR>delsvndir($fullpath); <BR>}else{ <BR>unlink($fullpath); <BR>} <BR>} <BR>} <BR>closedir($dh); <BR>//删除目录文件夹 <BR>if(rmdir($svndir)){ <BR>return true; <BR>}else{ <BR>return false; <BR>} <BR>} <br><br>$dir=dirname(__FILE__); <BR>//echo $dir; <BR>delsvn($dir); <BR>?> <BR>