php 遍历指定路径下所有目录与文件(示例)

发布时间:2020-03-17编辑:脚本学堂
用php代码遍历指定路径下的所有目录以及文件,这里分享二种实现方法,scandir与DirectoryIterator函数,有需要的朋友参考下。

本节内容:
php 遍历指定路径下所有目录与文件的自定义函数

基于php5 实现,两种方法:scandir和DirectoryIterator。

方法1,scandir函数:
 

复制代码 代码示例:
<?php
/**
* php 遍历目录与文件
* by www.jb200.com
*/
function scan_all($dir){
    $temp = scandir($dir);
    if(is_array($temp) && count($temp)>2){
        array_shift($temp);
        array_shift($temp);
        foreach($temp as $v){
            $cur_dir=$dir.DIRECTORY_SEPARATOR.$v;
            if(is_dir($cur_dir)){
                echo $v." =>";
                echo "<blockquote>";
                scan_all($cur_dir);
                echo "</blockquote>";
            }else if(is_file($cur_dir)){
                echo "FILE:".$v."<br/>";
            }else{
                echo 'err';
            }
        }
    }
}
$dir = "D:/yourdir/";
scan_all($dir);

方法2,DirectoryIterator:
 

复制代码 代码示例:

<?php
/**
* php 遍历目录与文件
* by www.jb200.com
*/
function directoryiterator($path)
{
    $iterator = new DirectoryIterator($path);

    foreach ($iterator as $fileinfo) {
        if(!$fileinfo->isDot())
        {
            if($fileinfo->isDir())
            {
                echo $fileinfo.'=><blockquote>';
                directoryiterator($path.DIRECTORY_SEPARATOR.$fileinfo);
                echo '</blockquote>';   
            }
            else
            {
                echo $fileinfo->getFilename().'<br/>';   
            }           
        }
    }
}
$dir = "D:/yourdir/";
directoryiterator($dir);