php定时删除文件夹下文件(清理缓存文件)_php教程-查字典教程网
php定时删除文件夹下文件(清理缓存文件)
php定时删除文件夹下文件(清理缓存文件)
发布时间:2016-12-29 来源:查字典编辑
摘要:那么有没有方法自动清理临时文件夹呢?以下代码就是一个简单定时清理文件夹下文件的php代码。ps:这个代码如果不重启网站会一直执行下去,所以只...

那么有没有方法自动清理临时文件夹呢?

以下代码就是一个简单定时清理文件夹下文件的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);

php删除文件夹及其文件夹下所有文件

复制代码 代码如下:

<?

function deldir($dir) {

//先删除目录下的文件:

$dh=opendir($dir);

while ($file=readdir($dh)) {

if($file!="." && $file!="..") {

$fullpath=$dir."/".$file;

if(!is_dir($fullpath)) {

unlink($fullpath);

} else {

deldir($fullpath);

}

}

}

closedir($dh);

//删除当前文件夹:

if(rmdir($dir)) {

return true;

} else {

return false;

}

}

?>

实例:删除某个文件夹下的所有“.svn”文件夹(包括其内容也要被删除).

复制代码 代码如下:

<?php

function delsvn($dir) {

$dh=opendir($dir);

//找出所有".svn“ 的文件夹:

while ($file=readdir($dh)) {

if($file!="." && $file!="..") {

$fullpath=$dir."/".$file;

if(is_dir($fullpath)) {

if($file==".svn"){

delsvndir($fullpath);

}else{

delsvn($fullpath);

}

}

}

}

closedir($dh);

}

function delsvndir($svndir){

//先删除目录下的文件:

$dh=opendir($svndir);

while($file=readdir($dh)){

if($file!="."&&$file!=".."){

$fullpath=$svndir."/".$file;

if(is_dir($fullpath)){

delsvndir($fullpath);

}else{

unlink($fullpath);

}

}

}

closedir($dh);

//删除目录文件夹

if(rmdir($svndir)){

return true;

}else{

return false;

}

}

$dir=dirname(__FILE__);

//echo $dir;

delsvn($dir);

?>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类