dongqu5650 2011-02-21 14:16
浏览 41
已采纳

PHP删除过期日期的目录中的所有子目录?

There is a directory /home/example/public_html/users/files/. Within the directory there are subdirectories with random names like 2378232828923_1298295497.

How do I completely delete the subdirectories which have creation date > 1 month?

There is a good script that I use to delete files, but it don't work with dirs:

$seconds_old = 2629743; //1 month old
$directory = "/home/example/public_html/users/files/";

            if( !$dirhandle = @opendir($directory) )
                        return;

             while( false !== ($filename = readdir($dirhandle)) ) {
                     if( $filename != "." && $filename != ".." ) {
                                $filename = $directory. "/". $filename;

                             if( @filectime($filename) < (time()-$seconds_old) )
                                      @unlink($filename); //rmdir maybe?
                     }
             }
  • 写回答

3条回答 默认 最新

  • dougou6114 2011-02-21 14:26
    关注

    you need a recursive function for this.

    function remove_dir($dir)
    {
        chdir($dir);
        if( !$dirhandle = @opendir('.') )
            return;
    
        while( false !== ($filename = readdir($dirhandle)) ) {
            if( $filename == "." || $filename = ".." )
                continue;
    
            if( @filectime($filename) < (time()-$seconds_old) ) {
                if (is_dir($filename)
                    remove_dir($filename);
                else 
                    @unlink($filename);
            }
        }
        chdir("..");
        rmdir($dir);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献