Rumah >pembangunan bahagian belakang >tutorial php >如何使用php代码来删除文件夹和清理缓存实例详解?

如何使用php代码来删除文件夹和清理缓存实例详解?

伊谢尔伦
伊谢尔伦asal
2017-07-17 13:37:021828semak imbas

先来看看删除代码:

<?php 
header(&#39;content-type:text/html;charset=utf-8&#39;); 
function delFile($fpath) { 
$filesize = array(); 
$filepath = iconv(&#39;gb2312&#39;, &#39;utf-8&#39;, $fpath); 
if (is_dir($fpath)) { 
if ($dh = opendir($fpath)) { 
while (($file = readdir($dh)) !== false) { 
if($file != &#39;.&#39; && $file != &#39;..&#39;) { 
$filesize[] = delFile($fpath.&#39;/&#39;.$file); 
} 
} 
closedir($dh); 
} 
/* 
* 方便统计目录数 
*/ 
$filesize[&#39;file&#39;] = 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 = &#39;D:/test&#39;; 
$filesize = delFile($fpath); 
$size = getArrSum($filesize); 
printf(&#39;为您节省:%.3fM 空间&#39;, $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);

Atas ialah kandungan terperinci 如何使用php代码来删除文件夹和清理缓存实例详解?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn