遍历 目录的几种有效办法
Posted 微风伏面
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遍历 目录的几种有效办法相关的知识,希望对你有一定的参考价值。
这一两个月来到新公司 刚好赶上项目进度,加班有点多,忘了记录点什么。。刚刚商品上传扫描 这块用上了之前研究的 目录相关技巧的 知识,很开心;当然下一期的 迭代器的讲解更有意思 ^-^;
传统扫描目录(我基本弃用了):
/********************** 一个简单的目录递归函数 第一种实现办法:用dir返回对象 ***********************/ function tree($directory) { $mydir = dir($directory); echo "<ul>\n"; while($file = $mydir->read()) { if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")) { echo "<li><font color=\"#ff00cc\"><b>$file</b></font></li>\n"; tree("$directory/$file"); } else echo "<li>$file</li>\n"; } echo "</ul>\n"; $mydir->close(); }
第二种:php5.4 更新的,比较好用,遍历目录
/** * @desc 使用扫描目录函数来遍历 * @Author FredGui * @param string $path */ function dirList($path = ‘/var/www/html/guimm/test‘){ foreach(scandir($path) as $i => $mod) { if(is_dir(‘/var/www/html/guimm/test/‘.$mod) && !in_array($mod,[‘.‘,‘..‘])) { test1(‘/var/www/html/guimm/test/‘.$mod); echo ‘目录是:‘. $mod . "<br/>"; }else{ $files[$i] = $mod; echo ‘文件:‘. $mod . "<br/>"; } } }
最后一种 我现在 用的,迭代器,他的好处就不多说了,下一期博客 会讲解相关的迭代器原理
/** * @desc 遍历目录,用文件系统迭代器 * @Author FredGui * @param string $path */ function fileList( $path = ‘/var/www/html/guimm/test‘){ $file = new FilesystemIterator($path); foreach ($file as $fileinfo) { /** @var $fileinfo SplFileInfo */ if($fileinfo->isFile()){ echo $fileinfo -> getFilename() . "<br/>"; }elseif($fileinfo->isDir()){ echo $fileinfo->getPathname() . "<br/>"; fileList($fileinfo->getPathname()); } } }
以上是关于遍历 目录的几种有效办法的主要内容,如果未能解决你的问题,请参考以下文章