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

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

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

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

PHP dir() 语法格式为:

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

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

  1. <?php
  2. $dir = @ dir("upload");//打开upload目录;“@”可屏蔽错误信息,因有时候需要显示文件的目录内并没有文件,此时可能会报出错误,用“@”隐藏掉错误
  3. //列举upload目录中的所有文件
  4. while (($file = $dir->read()) !== false)
  5. {
  6. echo "文件名: " . $file . "<br />";
  7. }
  8. $dir->close();
  9. ?>
  10. //输出结果为:
  11. 文件名: .
  12. 文件名: ..
  13. 文件名: logo.gif
  14. 文件名: arrow.gif
  15. 文件名: bg.gif

例子代码如下:

  1. function tree($dir)
  2. {
  3. $mydir = dir($dir);
  4. while($file = $mydir->read())
  5. {
  6. if($file != '.' && $file != '..')
  7. {
  8. if(is_dir("$dir/$file"))
  9. {
  10. echo '目录名:'.$dir.DIRECTORY_SEPARATOR.'<font color="red">'.$file.'</font><br />'; //开源软件:phpfensi.com
  11. tree("$dir/$file");
  12. }else{
  13. echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />';
  14. }
  15. }
  16. }
  17. $mydir->close();
  18. }
  19. tree('./phpmyadmin');

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

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

语法:readdir(dir_stream)

例子,代码如下:

  1. header('content-type:text/html;charset=utf-8');
  2. function listDir($dir)
  3. {
  4. if(is_dir($dir))
  5. {
  6. if($handle = opendir($dir))
  7. {
  8. while($file = readdir($handle))
  9. {
  10. if($file != '.' && $file != '..')
  11. {
  12. if(is_dir($dir.DIRECTORY_SEPARATOR.$file))
  13. {
  14. echo '目录名:'.$dir.DIRECTORY_SEPARATOR.'<font color="red">'.$file.'</font><br />';
  15. listDir($dir.DIRECTORY_SEPARATOR.$file);
  16. }else{
  17. echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />';
  18. }
  19. }
  20. }
  21. }
  22. closedir($handle);
  23. }else{
  24. echo '非有效目录!';
  25. }
  26. }
  27. listDir('./phpmyadmin');