Home  >  Article  >  php教程  >  PHP自定义遍历目录下所有文件dir(),readdir()函数

PHP自定义遍历目录下所有文件dir(),readdir()函数

WBOY
WBOYOriginal
2016-06-08 17:21:471050browse

php中遍历目录下文件函数有不少,下面本文章就来介绍dir(),readdir()函数遍历目录的例子,希望这些例子能给各位朋友带来帮助哦。

<script>ec(2);</script>

方法一:使用dir()遍历目录


dir()函数,成功时返回Directory类实例

PHP dir() 语法格式为:
dir(directory);//directory为需要显示文件名的目录名称,可包含路径信息
PHP dir() 用法举例:列出upload目录下的所有文件名:

 代码如下 复制代码
$dir = @ dir("upload");//打开upload目录;“@”可屏蔽错误信息,因有时候需要显示文件的目录内并没有文件,此时可能会报出错误,用“@”隐藏掉错误
//列举upload目录中的所有文件
while (($file = $dir->read()) !== false)
{
  echo "文件名: " . $file . "
";
}
$dir->close();
?>



输出结果为:

文件名: .
文件名: ..
文件名: logo.gif
文件名: arrow.gif
文件名: bg.gif

例子

 代码如下 复制代码

function tree($dir)
{
    $mydir = dir($dir);
    while($file = $mydir->read())
    {
        if($file != '.' && $file != '..')
        {
            if(is_dir("$dir/$file"))
            {
                echo '目录名:'.$dir.DIRECTORY_SEPARATOR.''.$file.'
';
                tree("$dir/$file");
            }else{
                echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'
';
            }
        }
    }
    $mydir->close();
}
tree('./phpmyadmin');




方法二 使用readir()遍历目录

定义和用法

readdir() 函数返回由 opendir() 打开的目录句柄中的条目。
若成功,则该函数返回一个文件名,否则返回 false。
语法

readdir(dir_stream)

例子

 代码如下 复制代码

header('content-type:text/html;charset=utf-8');

function listDir($dir)
{
    if(is_dir($dir))
    {
        if($handle = opendir($dir))
        {
            while($file = readdir($handle))
            {
                if($file != '.' && $file != '..')
                {
                    if(is_dir($dir.DIRECTORY_SEPARATOR.$file))
                    {
                        echo '目录名:'.$dir.DIRECTORY_SEPARATOR.''.$file.'
';
                        listDir($dir.DIRECTORY_SEPARATOR.$file);
                    }else{
                        echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'
';
                    }
                }
            }
        }
        closedir($handle);
    }else{
        echo '非有效目录!';
    }
}
listDir('./phpmyadmin');
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn