PHP讀取目錄下所有文件、glob遍歷目錄下所有文件


/**
 * 獲取目錄下的文件
 * @param $dir
 * @param array|string $isext(*=all)
 * @return array
 */
function getFileList($dir,$isext=array('jpg','jpeg','png','gif','bmp','webp')){
	$dir .= substr($dir, -1) == '/' ? '' : '/';
	$fileInfo = array();
	foreach (glob($dir.'*') as $v) {
		if(is_dir($v)){
			$fileInfo = array_merge($fileInfo,getFileList($v,$isext));
		}else{
			$files['file'] = iconv('gbk','utf-8',$v);//獲取文件名稱
//   $files['size'] = round((filesize($v)/1024),2);//獲取文件大小
			$files['time'] = date("Y-m-d H:i:s",filemtime($v));//獲取文件最近修改日期

			$ext = pathinfo($v,PATHINFO_EXTENSION);
			if (is_array($isext) && in_array($ext,$isext)){
				$fileInfo[] = $files;
			}elseif ($isext == '*'){
				$fileInfo[] = $files;
			}
		}
	}
	return $fileInfo;
}

/**
 * 文件排序(整理)
 * @param $dir
 * @param array $arr
 * @param int $sort
 * @param array|string $isext
 * @return array
 */
function getArrangeFile($dir,$arr=array(),$sort=SORT_DESC,$isext=array()){
	if (empty($dir) && empty($arr)){return array();}
	$arr = !empty($arr) ? $arr : (empty($isext) ? getFileList($dir) :  getFileList($dir,$isext)) ;
	foreach($arr as $k=>$v){
//  $file[$k] = $v['file'];
//  $size[$k] = $v['size'];
		$time[$k] = $v['time'];
	}
	if (!empty($arr)){
		array_multisort($time,$sort,SORT_STRING, $arr);//按時間排序
		//array_multisort($file,$sort,SORT_STRING, $arr);//按名字排序
		//array_multisort($size,$sort,SORT_NUMERIC, $arr);//按大小排序
	}
	return $arr;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章