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 09 PHP
提升PHP执行速度全攻略(下)
Oct 09 PHP
php DOS攻击实现代码(附如何防范)
May 29 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
Aug 01 PHP
php生成excel列序号代码实例
Dec 24 PHP
php中stream(流)的用法
Mar 25 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
PHP常见数组排序方法小结
Aug 20 PHP
微信JSSDK分享功能图文实例详解
Apr 08 PHP
浅谈Laravel模板实体转义带来的坑
Oct 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面向对象全攻略 (七) 继承性
2009/09/30 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
ie focus bug 解决方法
2009/09/03 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
2016/05/26 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
JavaScript实现网页动态生成表格
2020/11/25 Javascript
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
Python实现CET查分的方法
2015/03/10 Python
Python基于贪心算法解决背包问题示例
2017/11/27 Python
python中for用来遍历range函数的方法
2018/06/08 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
Python序列化pickle模块使用详解
2020/03/05 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
车间主任岗位职责
2014/03/16 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
师德师风剖析材料
2014/09/30 职场文书
学校政风行风整改方案
2014/10/25 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB