[英]EXT JS - Get directory tree structure into JSON object with PHP
我将EXT JS用于一个简单的树,该树将显示一个目录及其内容。 无论出于何种原因,我都仔细阅读了所有示例,但无法复制我想要的内容。 我想基于目录结构创建一个JSON对象,以便可以将其输入到EXT JS树中。
这是我的脚本,用于打开目录,创建父节点,然后尝试创建子节点。 该目录内只有.xml文件。 我已经了解到它可以与打开目录一起使用,只是为文件创建节点,但是它没有显示父级或根级,并且失去了漂亮的折叠效果。
这是我的代码:
if($handler = opendir($dir."/$market_desc"))
{
while (($sub = readdir($handler)) !== FALSE)
{
if ($sub !== "." && $sub !== ".." && $sub !== ".svn")
{
if(is_file($dir."/$market_desc/".$sub))
{
$subDir[] = array(
'text' => $sub,
'id' => $sub,
'checked' => false,
'leaf' => true,
'cls' => 'file'
);
}
}
}
$listDir[] = array(
'text' => $market_desc,
'id' => $market_desc,
'checked' => false,
'cls' => 'folder',
'children' => array($subDir)
);
closedir($handler);
unset($handler);
目录结构仅深入到1级,根目录中包含一些文件,其后是一些目录,其中也包含文件,但降级程度不超过1级。
我是按行业划分的php后端开发人员,因此对于javascript和EXT所需的JSON的正确格式,我深表歉意
经过一番尝试和错误后,我以正确的格式为EXT JS编写了此PHP脚本。 它将打开目录并构建嵌套数组,该数组可以进行json_encoded并发送到EXT JS Tree进行渲染
// Get market specific features and make nodes
if($handler = opendir($dir."/$market_desc"))
{
while (($sub = readdir($handler)) !== FALSE)
{
if ($sub !== "." && $sub !== ".." && $sub !== ".svn")
{
if(is_file($dir."/$market_desc/".$sub))
{
$subDir[] = array(
'text' => $sub,
'id' => $sub,
'checked' => false,
'leaf' => true,
'parent' => $market_desc,
'children' => NULL,
'cls' => 'file'
);
}
}
}
$listDir[] = array(
'text' => $market_desc,
'id' => $market_desc,
'checked' => false,
'cls' => 'folder',
'parent' => NULL,
'expanded' => true,
'children' => $subDir
);
closedir($handler);
unset($handler);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.