//遍历目录下文件方法
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)));
//根据文件修改日期对目录下的文件排序
function lt_2222_file_path_list($path){
$new_file_array=arraysort(printdir($path)); //遍历目录下的文件 且 根据修改时间对数组排序
krsort($new_file_array);
foreach($new_file_array as $key => $value){
if (!empty($value)) {
$for_path_url=$path.'/'.$key; //当前循环的目录地址
if(is_dir($for_path_url)){ //如果是目录则执行
//if($v=='.' || $v=='..'){continue;} //判断是否为系统隐藏的文件.和.. 如果是则跳过否则就继续往下走,防止无限循环再这里。
if((strcasecmp($for_path_url, $path.'/publish') != 0)){ //判断两个字符串是否相等,不显示目录[publish],因为目录下只有文件夹,会输出空列表,只输出[publish]下的目录文件
echo '<br>目录:'.$for_path_url.'<hr>';
}
krsort($value);
foreach($value as $key2 => $value2){
if($key2!='words' && $key2!='post' && $key2!='file' && $key2!='thumbnail'){ //去除目录下没有文件的目录
echo '<br>文件:'.$key2.'------>'.$value2.'<hr>';
}
}
lt_2222_file_path_list($for_path_url);
}
}
}
}
隐藏内容需要登录才可以看见
登录





