как мне вывести на сервер структуру папок в JSON
такой код выводит массив с директориями которые находятся в папке dir
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
$data = scandir('../dir/');
echo json_encode($data);
дерево папок на сервере примерно такое
dir/one/oneChild
dir/two/twoChild
dir/three/threeChild
хотелось бы получит что то типа этого в формате JSON , то-есть всю структуру папок из папки dir
[
{
"one": {
"oneChild": {}
}
},
{
"two": {
"twoChild": {}
}
},
{
"three": {
"threeChild": {}
}
}
]
Ответы (1 шт):
Автор решения: Вадим Александру
→ Ссылка
Например можно рекурсивно таким образом.
function getDirTree($path)
{
$result = [];
$files = scandir($path);
foreach ($files as $file) {
if(! in_array($file, ['.','..'])) {
if(is_dir($path . DIRECTORY_SEPARATOR . $file)) {
$result[$file] = getDirTree($path . DIRECTORY_SEPARATOR . $file);
} else {
$result[] = $file;
}
}
}
return $result;
}
$data = getDirTree('my-dir');
echo json_encode($data);