在while循环中,再次调用ListFolder。这样做是可以的,但是您不会将结果存储在任何地方,而只是在每次调用ListFolder时回显结果。
您在页面上看到的正确格式不是在结尾处回显的1个字符串。每次调用ListFolder时都会回显一个目录。
下面是有效的代码。
function ListFolder($path)
{
$FolderList = "";
$path = str_replace("//","/",$path);
//using the opendir function
$dir_handle = @opendir($path) or die("Unable to open $path");
//Leave only the lastest folder name
$dirname = end(explode("/", $path));
//display the target folder.
$FolderList .= (''.$path.'');
while (false !== ($file = readdir($dir_handle)))
{
if($file!="." && $file!="..")
{
if (is_dir($path."/".$file))
{
//Display a list of sub folders.
$FolderList .= ListFolder($path."/".$file);
}
}
}
//closing the directory
closedir($dir_handle);
return $FolderList;
}