php高效遍历目录文件及子目录
如果目录很多,推荐队列方式,递归方式会慢,慢的原因:递归的实现是通过调用函数本身,函数调用的时候,每次调用时要做地址保存,参数传递等
<?php //递归方式 function read_dir($dir){ $files=array(); $dir_list=scandir($dir); foreach($dir_list as $file){ if($file!=".." && $file!="."){ if(is_dir($dir."/".$file)){ $files[]=read_dir($dir."/".$file); }else{ $files[]=$file; } } } return $files; } //队列方式 function read_dir_queue($dir){ $files=array(); $queue=array($dir); while($data=each($queue)){ $path=$data["value"]; if(is_dir($path) && $handle=opendir($path)){ while($file=readdir($handle)){ if($file=="."||$file=="..") continue; $files[] = $real_path=$path."/".$file; if (is_dir($real_path)) $queue[] = $real_path; } } closedir($handle); } return $files; } print_r(read_dir_queue("D:/webroot/suanfa/dir"));exit;
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: nginx高并发优化——轻松应对1万并发
- 下一篇: PHP安全编程之session固定获取合法会话