gpt4 book ai didi

php - 如何在php中列出目录、子目录和所有文件

转载 作者:行者123 更新时间:2023-12-05 08:57:25 25 4
gpt4 key购买 nike

我希望能够列出“./”文件夹中的所有目录、子目录和文件,即名为 fileSystem 的项目文件夹,其中包含此 php 文件 scanDir.php。

你可以在这里查看我得到的目录系统: enter image description here

此时它只会返回 mkdir 目录根目录中的子目录文件夹/文件,但不会返回该子目录中的任何文件夹。

如果正在运行的 php 文件名为 scanDir.php,我该如何修改代码,以便它展示 fileSystem 文件夹中的所有文件、目录、子目录及其文件和子目录,下面提供了该文件的代码。这是 PHP 代码:

 $path = "./";

if(is_dir($path))

{
$dir_handle = opendir($path);

//extra check to see if it's a directory handle.
//loop round one directory and read all it's content.
//readdir takes optional parameter of directory handle.
//if you only scan one single directory then no need to passs in argument.
//if you are then going to scan into sub-directories the argument needs
//to be passed into readdir.
while (($dir = readdir($dir_handle))!== false)
{
if(is_dir($dir))
{
echo "is dir: " . $dir . "<br>";


if($dir == "mkdir")
{
$sub_dir_handle = opendir($dir);
while(($sub_dir = readdir($sub_dir_handle))!== false)
{
echo "--> --> contents=$sub_dir <br>";
}
}



}
elseif(is_file($dir))
{
echo "is file: " . $dir . "<br>" ;
}
}
closedir($dir_handle); //will close the automatically open dir.
}

else {

echo "is not a directory";
}

最佳答案

使用scandir查看目录中的所有内容和 is_file 检查项目是文件还是下一个目录,如果是目录,一遍又一遍地重复同样的事情。

所以,这是全新的代码。

function listIt($path) {
$items = scandir($path);

foreach($items as $item) {

// Ignore the . and .. folders
if($item != "." AND $item != "..") {
if (is_file($path . $item)) {
// this is the file
echo "-> " . $item . "<br>";
} else {
// this is the directory

// do the list it again!
echo "---> " . $item;
echo "<div style='padding-left: 10px'>";
listIt($path . $item . "/");
echo "</div>";
}
}
}
}

echo "<div style='padding-left: 10px'>";
listIt("/");
echo "</div>";

You can see the live demo here in my webserver, btw, I will keep this link just for a second

“->”是文件,“-->”是目录

没有 HTML 的纯代码:

function listIt($path) {
$items = scandir($path);

foreach($items as $item) {
// Ignore the . and .. folders
if($item != "." AND $item != "..") {
if (is_file($path . $item)) {
// this is the file
// Code for file
} else {
// this is the directory
// do the list it again!
// Code for directory
listIt($path . $item . "/");
}
}
}
}

listIt("/");

演示可能需要一段时间才能加载,它有很多项目。

关于php - 如何在php中列出目录、子目录和所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33188758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com