• 技术文章 >后端开发 >php教程

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

    伊谢尔伦伊谢尔伦2017-07-17 13:37:02原创846
    先来看看删除代码:

    <?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代码来删除文件夹和清理缓存实例详解?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:文件夹 php 删除
    上一篇:php删除文件夹操作函数和几种方式实例代码汇总 下一篇:php如何使用递归删除文件实现代码总结
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 细思极恐?关于in_array的第3个参数• 关于HTML登陆界面的有关问题。• 一个.htaccess的写法,麻烦,十分感谢!• 今天又犯2了-小弟我不是在犯2,就是在犯2的路下• mysql导出文件有关问题?请!
    1/1

    PHP中文网