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 '
';
	print_r($list);die;
	echo '
'
; } /** * 二维数组根据某个字段排序 * @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; }

你可能感兴趣的:(PHP,文件排序)