gpt4 book ai didi

php - 开箱即用的 php 目录结构组件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:26 24 4
gpt4 key购买 nike

有人知道现成的 php 类可以递归读取文件系统目录(包括所有文件和子目录)并返回结构的数组或对象或 JSON 字符串或 XML 吗?

我会自己做这件事,但一位客户刚打电话来,坚持要今天完成。是的。

最佳答案

您可以使用内置 RecursiveDirectoryIterator­Docs类来创建您想要的结果。在以下示例中,创建了一个分层数组:

$dir = '.';

$dirit = new RecursiveDirectoryIterator($dir);
$it = new RecursiveIteratorIterator($dirit);
$array = array();
foreach($it as $file)
{
$path = substr($file, strlen($dir)+1);
$parts = explode(DIRECTORY_SEPARATOR, $path);
$filename = array_pop($parts);
$dirname = implode(DIRECTORY_SEPARATOR, $parts);
$build = &$array;
foreach($parts as $part)
{
if (!isset($build[$part])) $build[$part] = array();
$build = &$build[$part];
}
$build[] = $filename;
unset($build);
}

$array 将包含列表:

Array
(
[0] => .buildpath
[1] => .project
[.settings] => Array
(
[0] => org.eclipse.php.core.prefs
)

[array] => Array
(
[0] => array-keys.php
[1] => array-stringkey-explode.php
)
)

使用 json_encode­Docs可以简单地将它变成类似这样的东西:

json_encode($array);

{"0":".buildpath","1":".project",".settings":["org.eclipse.php.core.prefs"],"array":["array-keys.php","array-stringkey-e
xplode.php"]}

正如我在上面的评论中所写,glob也很有用。

关于php - 开箱即用的 php 目录结构组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733154/

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