先来看看删除代码:
<?php
header('content-type:text/html;charset=utf-8');
function delfile($fpath) {
$filesize = array();
$filepath = iconv('gb2312', 'utf-8', $fpath);
if (is_dir($fpath)) {
if ($dh = opendir($fpath)) {
while (($file = readdir($dh)) !== false) {
if($file != '.' && $file != '..') {
$filesize[] = delfile($fpath.'/'.$file);
}
}
closedir($dh);
}
/*
* 方便统计目录数
*/
$filesize['file'] = 0;
if(@rmdir($fpath) === true) {
echo "{$filepath}................删除成功<br>\n";
} else {
echo "{$filepath}................删除失败<br>\n";
}
} else {
if(is_file($fpath)) {
$filesize[] = $fsize = filesize($fpath);
if(@unlink($fpath) === true) {
echo "{$filepath}...{$fsize}k................删除成功<br>\n";
} else {
echo "{$filepath}...{$fsize}k................删除失败<br>\n";
}
}
}
return $filesize;
}
/*
* function getarrsum(array &$arr) 数组求和
* array &$arr 被处理数组
*/
function getarrsum(&$arr) {
if(is_array($arr)) {
foreach ($arr as &$value) {
$value = getarrsum($value);
}
return array_sum($arr);
} else {
return $arr;
}
}
$fpath = 'd:/test';
$filesize = delfile($fpath);
$size = getarrsum($filesize);
printf('为您节省:%.3fm 空间', $size/(1024*1024));
?>
一个简单定时清理文件夹下文件的php测试代码:
<?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代码来删除文件夹和清理缓存实例详解?的详细内容。