递归扫描目录内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归扫描目录内容相关的知识,希望对你有一定的参考价值。

  1. <?php
  2. function dir_recursive($path, $parent = ''){
  3. $files = array();
  4.  
  5. $d = dir($path);
  6. while (false !== ($entry = $d->read())) {
  7. if($entry == '.' || $entry == '..')
  8. continue;
  9.  
  10. //if this is a directory, loop inside its contents
  11. if(is_dir($d->path.'/'.$entry)){
  12. //if parent dir given, then create another array dimension to be used to store files under this parent
  13. if(!empty($parent)){
  14. $files[$parent][$entry] = dir_recursive($d->path.'/'.$entry, $entry);
  15. }else
  16. $files[$entry] = dir_recursive($d->path.'/'.$entry, $entry);
  17. }else
  18. $files[$entry] = $entry;
  19.  
  20. //reset parent dir given, so it won't create another array dimension for the next loop of subdirectory
  21. $parent = '';
  22. }
  23. $d->close();
  24.  
  25. return $files;
  26. }
  27.  
  28. //usage
  29. $files = dir_recursive('.');
  30. echo '<pre>'; print_r($files);
  31.  
  32. ?>

以上是关于递归扫描目录内容的主要内容,如果未能解决你的问题,请参考以下文章

如何执行完整的递归目录和文件扫描?

使用 C++ 递归扫描目录上的 ACL

Redshift 复制命令递归扫描

Java:递归扫描某个文件下所有文件并使用正则匹配文件

安全牛学习笔记Web扫描器

递归文件搜索的问题