介绍
本篇文章为大家展示了PHP中对目录进行递归的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强>方法一:使用一滴循环强>
& lt; PHP ?//方法一:使用一滴循环 , function myscandir1(路径,美元和美元arr), { , foreach 才能;(水珠(路径)美元,as 美元文件),{ ,,,if (is_dir(文件)美元),{ ,,,,,myscandir1 (file 美元;只& # 39;/* & # 39;,,arr美元); ,,,},{else , ,,,,,arr[],美元=,realpath($文件); ,,,} ,,} } 祝辞;
<强>方法二:使用dir,,读循环强>
& lt; php ?//方法二:使用dir ,,,读循环 function myscandir2(路径,美元和美元arr), { , 时间=美元才能dir_handle dir($路径); while 才能;(($ file =,美元dir_handle→读()),!==,false), { , ,,,p 美元;=,realpath (path 美元;只& # 39;/& # 39;,只美元文件); ,,,if (file 美元;!=,“干净,,,,file 美元;!=,“…“),{ ,,,,,arr[],美元=,$ p; ,,,} , ,,,if (is_dir ($ p),,,, file 美元;!=,“干净,,,,file 美元;!=,“…“),{ ,,,,,myscandir2 ($ p,, $ arr); ,,,} ,,} } 祝辞;
<强>方法三:使用opendir,,readdir循环强>
& lt; php ?//方法三:使用opendir ,,, readdir循环 function myscandir3(路径,美元和美元arr), { ,, 美元才能dir_handle =, opendir($路径); while 才能;(($ file =, readdir (dir_handle美元)),!==,false), { , ,,,p 美元;=,realpath (path 美元;只& # 39;/& # 39;,只美元文件); ,,,if (file 美元;!=,“干净,,,,file 美元;!=,“…“),{ ,,,,,arr[],美元=,$ p; ,,,} ,,,if (is_dir ($ p),,,, file 美元;!=,“干净,,,,file 美元;!=,“…“),{ ,,,,,myscandir3 ($ p,, $ arr); ,,,} ,,} } ,?在
<强>,方法四:使用scandir循环
强>,
& lt; php ?//方法四:使用scandir循环 function myscandir4(路径,美元和美元arr), { ,, 时间=美元才能dir_handle scandir($路径); foreach 才能;(dir_handle 美元;as $文件),{ , ,,,p 美元;=,realpath (path 美元;只& # 39;/& # 39;,只美元文件); ,,,if (file 美元;!=,“干净,,,,file 美元;!=,“…“),{ ,,,,,arr[],美元=,$ p; ,,,} ,,,if (is_dir ($ p),,,, file 美元;!=,“干净,,,,file 美元;!=,“…“),{ ,,,,,myscandir4 ($ p,, $ arr); ,,,} ,,} } ,?在
<强>方法五:使用SPL循环强>
, php & lt; ?//方法五:使用SPL循环 function myscandir5(路径,美元和美元arr), { , 时间=美元才能iterator new DirectoryIterator($路径); foreach 才能;(iterator 美元;as  fileinfo美元),{ , ,,,file 美元;=,美元fileinfo→getFilename (); ,,,p 美元;=,realpath (path 美元;只& # 39;/& # 39;,只美元文件); ,,,if (! $ fileinfo→isDot ()), { ,,,,,arr[],美元=,$ p; ,,,} ,,,if (美元fileinfo→isDir (),,,, ! fileinfo→美元isDot ()), { ,,,,,myscandir5 ($ p,, $ arr); ,,,} ,,} } 祝辞;
,可以用xdebug测试运行时间
& lt; php ? myscandir1(& # 39;。/代码# 39;,arr1美元);//0.164010047913, myscandir2(& # 39;。/代码# 39;,arr2美元);//0.243014097214, myscandir3(& # 39;。/代码# 39;,arr3美元);//0.233012914658, myscandir4(& # 39;。/代码# 39;,arr4美元);//0.240014076233 myscandir5(& # 39;。/代码# 39;,arr5美元);//0.329999923706 , ,//需要安装xdebug echo xdebug_time_index (),“\ n"; ?在
上述内容就是PHP中对目录进行递归的方法有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。