一个遍历文件目录的function,有两个问题请指教?
问题一、static $file_list 的static是为递归叠加使用,如何避免外面两次以上调用,后边的结果里叠加前边调用的结果?问题二、形参$ext_name是否分成两个参数($mode=true,$ext_name=)比较合理
问题一、static $file_list 的static是为递归叠加使用,如何避免外面两次以上调用,后边的结果里叠加前边调用的结果?
问题二、形参$ext_name是否分成两个参数($mode=true,$ext_name='')比较合理?
问题二、形参$ext_name是否分成两个参数($mode=true,$ext_name='')比较合理?
//遍历文件(文件列表) static function scan($dir,$ext_name=true){ $dir_tree=array(); static $file_list=null; static $the_file_list=null; foreach (scandir($dir) as $file) { $file_location=trim($dir,'/').'/'.$file; if (is_dir($file_location) && $file!="." && $file!="..") { array_push($dir_tree,self::scan($file_location,$ext_name)); } else { if (($file!='.' && $file!='..') || !is_dir($file)) { if ($ext_name===true) { $file_list[]=$file_location; } if ($ext_name && $ext_name==trim(strrchr($file,'.'))) { $the_file_list[]=$file_location; } $tmp=explode('/',$dir); array_push($dir_tree,'<strong>'.end($tmp).' </strong>'.$file); } } } $result=($ext_name===true) ? $file_list : $the_file_list; return $ext_name ? $result : $dir_tree; }
- 上一篇:易信 php 验证接口
- 下一篇:高性能电商平台 外贸电商系统 高负载高并发,高
精彩图集
精彩文章