首页 > 后端开发 > php教程 > php代码列出一个目录下的所有文件

php代码列出一个目录下的所有文件

WBOY
发布: 2016-07-25 09:08:05
原创
1487 人浏览过
  1. /**
  2. 目录处理函数
  3. */
  4. function dir_path($path) {
  5. $path = str_replace('\\', '/', $path);
  6. if (substr($path, -1) != '/') $path = $path . '/';
  7. return $path;
  8. }
  9. /**
  10. * 列出目录下的所有文件
  11. *
  12. * @param str $path 目录
  13. * @param str $exts 后缀
  14. * @param array $list 路径数组
  15. * @return array 返回路径数组
  16. */
  17. function dir_list($path, $exts = '', $list = array()) {
  18. $path = dir_path($path);
  19. $files = glob($path . '*');
  20. foreach($files as $v) {
  21. if (!$exts || preg_match("/\.($exts)/i", $v)) {
  22. $list[] = $v;
  23. if (is_dir($v)) {
  24. $list = dir_list($v, $exts, $list);
  25. }
  26. }
  27. }
  28. return $list;
  29. }
  30. ?>
复制代码

使用方法:

  1. $r = dir_list('dir');
  2. printf("

    输出数据为:

    %s
    登录后复制
    \n", var_export($r , true));
  3. ?>
复制代码

#------------------- PHP函数-用来列出目录下所有文件

采用PHP编写的函数,用来列出指定目录下的所有的文件。 函数后面带有一个使用的示例代码。 注意:如果页面是utf-8的,在window中文版本的系统中,读取中文的文件名的时候会出现乱码。

  1. /* 函数 listDirTree( $dirName = null )
  2. ** 功能 列出目录下所有文件及子目录
  3. ** 参数 $dirName 目录名称
  4. ** 返回 目录结构数组 false为失败
  5. */
  6. function listDirTree( $dirName = null )
  7. {
  8. if( empty( $dirName ) )
  9. exit( "IBFileSystem: directory is empty." );
  10. if( is_dir( $dirName ) )
  11. {
  12. if( $dh = opendir( $dirName ) )
  13. {
  14. $tree = array();
  15. while( ( $file = readdir( $dh ) ) !== false )
  16. {
  17. if( $file != "." && $file != ".." )
  18. {
  19. $filePath = $dirName . "/" . $file;
  20. if( is_dir( $filePath ) ) //为目录,递归
  21. {
  22. $tree[$file] = listDirTree( $filePath );
  23. }
  24. else //为文件,添加到当前数组
  25. {
  26. $tree[] = $file;
  27. }
  28. }
  29. }
  30. closedir( $dh );
  31. }
  32. else
  33. {
  34. exit( "IBFileSystem: can not open directory $dirName.");
  35. }
  36. //返回当前的$tree
  37. return $tree;
  38. }
  39. else
  40. {
  41. exit( "IBFileSystem: $dirName is not a directory.");
  42. }
  43. }
  44. $files = listDirTree(".");
  45. //print_r($files);
  46. $size = count(files);
  47. //以下代码是创建一个本目录下文件的列表(带有链接地址)
  48. echo '
      ';
    1. for( $i=0; $files[$i] != NULL; $i++ ) {
    2. echo '
    3. '.$files[$i].'
    4. ';
    5. }
    6. echo '
    ';
  49. ?>
复制代码


来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板