1. 程式人生 > >遍歷 目錄的幾種有效辦法

遍歷 目錄的幾種有效辦法

加班 記錄 基本 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());
       }
    }
}

  

 

遍歷 目錄的幾種有效辦法