php定时删除文件夹下文件(清理缓存文件)


Posted in PHP onJanuary 23, 2013

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

以下代码就是一个简单定时清理文件夹下文件的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 强制下载文件代码
Oct 24 PHP
PHP的范围解析操作符(::)的含义分析说明
Jul 03 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
Jan 27 PHP
CI框架自动加载session出现报错的解决办法
Jun 17 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
dedecms中使用php语句指南
Nov 13 PHP
php实现过滤UBB代码的类
Mar 12 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
PHP rmdir()函数的用法总结
Jul 02 PHP
PHP代码覆盖率统计详解
Jul 22 PHP
PHP关联数组的10个操作技巧
Jan 21 #PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 #PHP
PHP中CURL方法curl_setopt()函数的参数分享
Jan 19 #PHP
php牛逼的面试题分享
Jan 18 #PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 #PHP
php图片加水印原理(超简单的实例代码)
Jan 18 #PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
Jan 17 #PHP
You might like
PHP生成月历代码
2007/06/14 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
jquery 回车事件实现代码
2011/08/23 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
2019/05/12 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
python 实现A*算法的示例代码
2018/08/13 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
检察官就职演讲稿
2014/01/13 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
党校毕业个人总结
2015/02/28 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
nginx安装以及配置的详细过程记录
2021/09/15 Servers
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS