Php 如何仅列出某个文件夹中的所有目录和子目录

Php 如何仅列出某个文件夹中的所有目录和子目录,php,treeview,scandir,Php,Treeview,Scandir,对于treeview,我使用此功能,它为我提供主目录中所有文件和文件夹的完整摘要: /* FUNCTION TREEVIEW directories & files */ function listFolderFiles($dir){ $files = preg_grep('/^([^.])/', scandir($dir)); // prevent empty ordered elements if (count($files) < 1) return; echo '

对于treeview,我使用此功能,它为我提供主目录中所有文件和文件夹的完整摘要:

/* FUNCTION TREEVIEW directories & files */
function listFolderFiles($dir){
$files = preg_grep('/^([^.])/', scandir($dir));

// prevent empty ordered elements
if (count($files) < 1)
    return;

echo '<ul>';
foreach($files as $file){
    echo '<li class="treeview">'.$file;
    if(is_dir($dir.'/'.$file)) listFolderFiles($dir.'/'.$file);
    echo '</li>';
}
echo '</ul>';
}
/*函数树查看目录和文件*/
函数listFolderFiles($dir){
$files=preg_grep('/^([^.])/',scandir($dir));
//防止空的有序元素
如果(计数($files)<1)
回来
回声“
    ”; foreach($files作为$file){ echo'
  • 。$file; if(is_dir($dir./'.$file))listFolderFiles($dir./'.$file); 回音“
  • ”; } 回声“
”; }
这个很好用!他只给我显示目录而不再显示文件,我需要对代码做什么更改?

更改

foreach($files as $file){
    echo '<li class="treeview">'.$file;
    if(is_dir($dir.'/'.$file)) listFolderFiles($dir.'/'.$file);
    echo '</li>';
}
foreach($files as$file){
echo'
  • 。$file; if(is_dir($dir./'.$file))listFolderFiles($dir./'.$file); 回音“
  • ”; }

    foreach($files as$file){
    if(is_dir($dir./'.$file)){
    echo'
  • 。$file; listFolderFiles($dir.'/'.$file); 回音“
  • ”; } }
    glob()
    带有
    glob\u ONLYDIR
    标志将是我的选择。
    foreach($files as $file){
        if(is_dir($dir.'/'.$file)) {
            echo '<li class="treeview">'.$file;
            listFolderFiles($dir.'/'.$file);
            echo '</li>';
        }
    }