遍歷 目錄的幾種有效辦法
阿新 • • 發佈:2017-05-31
加班 記錄 基本 lis () *** spl fun filename
這一兩個月來到新公司 剛好趕上項目進度,加班有點多,忘了記錄點什麽。。剛剛商品上傳掃描 這塊用上了之前研究的 目錄相關技巧的 知識,很開心;當然下一期的 叠代器的講解更有意思 ^-^;
傳統掃描目錄(我基本棄用了):
/********************** 一個簡單的目錄遞歸函數 第一種實現辦法:用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()); } } }
遍歷 目錄的幾種有效辦法