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

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

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

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

PHP dir() 语法格式为:

dir(directory);//directory为需要显示文件名的目录名称,可包含路径信息

PHP dir() 用法举例:列出upload目录下的所有文件名:

代码如下
<?php

$dir = @ dir("upload");//打开upload目录;“@”可屏蔽错误信息,因有时候需要显示文件的目录内并没有文件,此时可能会报出错误,用“@”隐藏掉错误

//列举upload目录中的所有文件

while (($file = $dir->read()) !== false)

{

echo "文件名: " . $file . "<br />";

}

$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.'<font color="red">'.$file.'</font><br />';

tree("$dir/$file");

}else{

echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />';

}

}

}

$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.'<font color="red">'.$file.'</font><br />';

listDir($dir.DIRECTORY_SEPARATOR.$file);

}else{

echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />';

}

}

}

}

closedir($handle);

}else{

echo '非有效目录!';

}

}

listDir('./phpmyadmin');