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'); |