繁体   English   中英

EXT JS-使用PHP将目录树结构转换为JSON对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM