PHP 查看目录内的文件和目录,并按生成时间排序

//查看目录内的文件和目录,并按生成时间排序
function index(){
	//要查看的目录
	$file_path = '../extend/';
	
	//判断 Mac 是否有 DS_Store,拉取文件是否有.gitkeep、.keep,并排除
    $files = [];
    $file = scandir($file_path, 1);
    if(!empty($file)){
        foreach($file as $k=>$v){
            if($v!='.' && $v!='..' && $v!='.DS_Store' && $v!='.gitkeep' && $v!='.keep'){
                $files[] = $v;
            }
        }
    }
    
    $list = [];
    if(is_array($files)){
        foreach($files as $k=>$v){
            $filesize = filesize($file_path . $v);
            if($filesize < 1024){
                $size = sprintf("%01.2f", $filesize) . "B";
            }elseif($filesize < 1024 * 1024){
                $size = sprintf("%01.2f", ($filesize / 1024)) . "KB";
            }elseif($filesize < 1024 * 1024 * 1024){
                $size = sprintf("%01.2f", ($filesize / (1024 * 1024))) . "MB";
            }elseif($filesize < 1024 * 1024 * 1024 * 1024){
                $size = sprintf("%01.2f", ($filesize / (1024 * 1024 * 1024))) . "GB";
            }
            $list[] = [
                'file'=>$v,
                'size'=>$size,
                'create_time'=>filemtime($file_path . $v),
                'create_date'=>date('Y-m-d H:i:s', filemtime($file_path . $v)),
            ];
        }
    }
    
    //根据文件和目录生成时间按倒序排列
	$list = $this->arraySort($list, 'create_time', SORT_DESC);
	
	echo '<pre>';
	print_r($list);die;
	echo '</pre>';
}

/**
 * 二维数组根据某个字段排序
 * @param array $array	要排序的数组
 * @param string $keys	要排序的键字段
 * @param string $sort	排序类型: SORT_ASC 升序, SORT_DESC 降序
 * @return array 		排序后的数组
 */
function arraySort($array, $keys, $sort = SORT_DESC) {
    $keysValue = [];
    foreach ($array as $k => $v) {
        $keysValue[$k] = $v[$keys];
    }
    array_multisort($keysValue, $sort, $array);
    return $array;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值