本文描述了用PHP读取目录树的实现方法。分享给大家参考,如下:
前段时间,XX公司的面试问题中有这样一个问题:
用PHP列出目录树!
这时候,孟迫看了一眼!有一些基本思路,但是用的是递归算法,但是对PHP中操作目录文件的方法不太了解,所以今天有一个很好的教程!
思考解决问题:
1.列出目录中的文件。2.确定是否是目录,如果是目录继续递归。3.将所有文件名存储在多维数组中
?Php函数recurdir($ pathname){//将结果保存在结果变量$result=array()中;$ temp=array();//判断传入的变量是否为directory if(!is_dir($pathName) ||!is _可读($pathName)) {返回null}//取出目录中的文件和子目录名,使用scandir函数$ all files=scandir($ pathName);//遍历它们foreach ($所有文件作为$ filename){//判断是否是。和.因为这两件事不算什么。if(in_array($fileName,array(' . '), '.'))){继续;}//路径加上文件名$ fullname=$ pathname。'/'.$文件名;//如果是目录,继续遍历这个目录如果(is_dir($fullName)) {//将这个目录中的文件信息保存到数组$ result[$ full name]=recurdir($ full name);}else {//如果是文件,保存到临时变量$temp[]=$fullName中;} }//取出文件if($ temp){ foreach($ temp as $ f){ $ result[]=$ f;} }返回$ result}//验证这个功能是否好用!$ tree=RecurDir(' cart _ Ajax ');回声“pre”;print _ r($ tree);回声'/pre ';Cart_ajax文件夹结构
js文件夹下的内容
显示结果
你完蛋了!目录的级别确实是这样的,但是好像太低了!稍微美化一下!
函数beauty ultree($ arr,$ l='-| '){ static $ l=' ';静态$ str=//遍历目录树foreach($arr as $key=$val) {//如果是数组,则表示是目录,然后在其子文件中添加-|表示是下一级if(is _ array($ arr[$ key]){ $ str。=$ l. $ key。$ l .='-| ';beauturetree($ arr[$ key],$ l);}else { $str。=$l.$val。br/';} } $ l=返回$ str} $美化树=美化树($ tree);回声“pre”;print _ r($漂亮);回声'/pre ';显示结果
更多对PHP相关内容感兴趣的读者可以查看本网站的话题:《PHP目录操作技巧汇总》、《php文件操作总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php常见数据库操作技巧汇总》、0103010。
希望本文对PHP编程有所帮助。