php遍历目录下文件并按修改时间排序操作示例

yipeiwu_com6年前PHP代码库

本文实例讲述了php遍历目录下文件并按修改时间排序操作。分享给大家供大家参考,具体如下:

php 遍历目录下文件方法

//遍历目录下文件方法
function printdir($dir)
{
    $files = array();
    //opendir() 打开目录句柄
    if($handle = @opendir($dir)){
    //readdir()从目录句柄中(resource,之前由opendir()打开)读取条目,
    // 如果没有则返回false
        while(($file = readdir($handle)) !== false){//读取条目
            if( $file != ".." && $file != "."){//排除根目录
                if(is_dir($dir . "/" . $file)) {//如果file 是目录,则递归
                    $files[$file] = printdir($dir . "/" . $file);
                } else {
                    //获取文件修改日期
                    $filetime = date('Y-m-d H:i:s', filemtime($dir . "/" . $file));
                    //文件修改时间作为健值
                    $files[$filetime] = $file;
                }
            }
        }
        @closedir($handle);
        return $files;
    }
}

对返回数组按时间排序

//根据修改时间对数组排序
function arraysort($aa) {
    if( is_array($aa)){
        ksort($aa);
        foreach($aa as $key => $value) {
            if (is_array($value)) {
                $arr[$key] = arraysort($value);
            } else {
                $arr[$key] = $value;
            }
        }
        return $arr;
    } else {
        return $aa;
    }
}
$dir = "/php";
//输出 /php 下所有文件
print_r(arraysort(printdir($dir)));

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP目录操作技巧汇总》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP网络编程技巧总结

希望本文所述对大家PHP程序设计有所帮助。

相关文章

PHP编程实现微信企业向用户付款的方法示例

本文实例讲述了PHP编程实现微信企业向用户付款的方法。分享给大家供大家参考,具体如下: <?php header('content-type:text/html;cha...

php使用pdo连接报错Connection failed SQLSTATE的解决方法

本文实例讲述了php pdo_mysql连接报错Connection failed: SQLSTATE[HY000] [2002] No such file or directory问题...

PHP基于简单递归函数求一个数阶乘的方法示例

PHP基于简单递归函数求一个数阶乘的方法示例

本文实例讲述了PHP基于简单递归函数求一个数阶乘的方法。分享给大家供大家参考,具体如下: 一、问题: 求一个数a的阶乘,那么,a!=a*(a-1)*(a-2)*(a-3)*……*2*1....

Ubuntu 16.04下安装PHP 7过程详解

前言 最近由于换了硬盘重装了(升级)系统到Ubuntu16.04之后,开发环境也要重新安装,其实16.04源里面默认的PHP版本就是7.x,但是有个问题就是没有OCI扩展,有项目需要使用...

PHP实现按之字形顺序打印二叉树的方法

本文实例讲述了PHP实现按之字形顺序打印二叉树的方法。分享给大家供大家参考,具体如下: 问题 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序...