PHP:如何填充数组中的目录结构

2023-11-29

我正在开发一个管理面板,显示服务器上特定位置的目录结构。我有一个递归 php 函数,可以迭代每个文件和文件夹。我不明白的是如何将此目录结构存储在 php 关联数组中,如下所示:

array[foldername1][0]=file; // if the foldername1 contains a file
array[foldername1][foldername2][0]=file //if foldername1 contains another folder(foldername2) along with the file.

我试图遵循的规则是;文件夹应始终是键,文件应始终位于如下索引处:

array[folder1][folder2][0]=file1;
array[folder1][folder2][1]=file2;

填充这个关联数组的函数应该是通用的,因为我们永远不知道目录结构是什么。我想将此数组 json_encode 返回给我的客户端并在 JavaScript 中处理它,这目前不是问题。

如果这是一个不好的方法,请告诉我,因为可能有更好的方法来做到这一点。我想过使用平面阵列,但我想这是一个糟糕的设计。


$ritit = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__), RecursiveIteratorIterator::CHILD_FIRST);
$r = array();
foreach ($ritit as $splFileInfo) {
   $path = $splFileInfo->isDir()
         ? array($splFileInfo->getFilename() => array())
         : array($splFileInfo->getFilename());

   for ($depth = $ritit->getDepth() - 1; $depth >= 0; $depth--) {
       $path = array($ritit->getSubIterator($depth)->current()->getFilename() => $path);
   }
   $r = array_merge_recursive($r, $path);
}

print_r($r);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP:如何填充数组中的目录结构 的相关文章

  • php laravel Blade 模板不渲染

    我正在尝试使用 Laravel 和 twitter bootstrap 设置一个基本页面 我安装了 Laravel 并获得了通用的 你在这里 或 w e 图像 这样看起来很闪亮 对于 twitter bootstrap 我在 public
  • 将 #RRGGBB 十六进制值转换为 #AARRGGBB

    414141 与 AARRGGBB 的值是什么 52b531 又如何 我如何使用 PHP 转换它 Regards 奔腾10 AA 是 Alpha 通道 直接转换是将 AA 设置为 FF 以使其完全不透明 414141 becomes FF4
  • 获取给定日期时间集的每月第一个星期一

    我需要什么 我有一个特定的日期时间列表 我想获取每个日期时间的第一个星期一 例如 假设给定的日期时间是 2013 07 05 2013 08 05 2013 09 13 etc 我想获得所有这些日期时间的第一个星期一 以便输出结果 2013
  • PHP 下载脚本输出损坏的文件

    我正在用 PHP 为我的 CMS 构建一个文件下载类 当时我注意到它以不同的编码格式输出文件 我尝试使用 readfile file get contents fread 但似乎都在做同样的事情 这就像与输出缓冲有关的东西 我使用脚本下载的
  • Magento:如何在 CMS 页面中包含 php 调用

    按照此页面的说明进行操作 http www magento cc how to use php on a cms page html http www magento cc how to use php on a cms page html
  • 内连接 3 个表

    我正在使用 PHP 和 PDO 我需要重新收集连接 3 个表的信息 photos albums 相册照片 该表具有以下结构 photos photo id int path varchar nick varchar date timesta
  • 用 PHP 截断文件末尾

    我有一个日志文件 我想在 PHP 读取该文件后将其截断 我的代码目前如下所示 fp fopen file r ftruncate fp 125000 fclose fp 但是 这会通过保留first1MB 不过 我想保留last1Mb 的文
  • 如何使用 php DOM 获取 内的值?

    我如何使用 php DOM 获取 内的值 这是我的 xml 中的一些代码
  • 在php中获取大于2GB的文件大小的最佳方法?

    我想检查本地驱动器上的文件大小windows OS 但是PHP原生函数filesize 仅当文件大小小于时才有效2GB 大于的文件2GB将返回错误的数字 那么 是否有其他方法来获取大于的文件大小2GB 非常感谢 您始终可以使用系统的文件大小
  • 查明具有特定 ID 的会话是否已过期

    我正在创建一个上传功能 将用户上传的文件存储在服务器上 并以用户的会话 ID 作为名称 现在 我只想将此文件保留在服务器上 直到该会话处于活动状态 所以 我的问题是 如何根据会话 ID 确定会话是活动的还是过期的 以便在后一种情况下我可以安
  • 在 PHP 中将整数转换为十六进制值

    如何将PHP中第一类中的数字转换为第二类中的数字 是否有内置函数来转换数字 也是我的标题 将整数转换为十六进制值 甚至正确 class Permission const READ 1 const UPDATE 2 const DELETE
  • 将 Cloudinary 与 spatie/media-library Laravel 包一起使用

    有人使用 Laravel 包 spatie media library 和 Cloudinary 吗 我认为用 Flysystem 来实现它是微不足道的 我实际上使用 Cloudinary 作为带有 silvanite nova field
  • ASP.NET MVC 3 中嵌入的 PHP 站点的 IgnoreRoute

    我有一个带有嵌入式 WordPress 博客的 MVC 3 网站 以下所有 url 均通过 MVC 定向 www mysite com www mysite com aboutus www mysite com contactus 我还有一
  • 自定义 WordPress 画廊 html 布局

    当使用默认媒体上传器在 WordPress 中创建图像库时 WordPress 将图像包装在一堆 HTML 标记中 如何在生成之前覆盖它 以便我可以输出所需的标记并更改创建图库布局的方式 目前 WordPress 生成的代码如下 div d
  • Laravel,控制器中的 Auth::user()

    Laravel 框架 为什么我无法在 laravel 项目的控制器中使用 Auth user 查看用户是否已登录 Session 是否未连接到控制器 HomeController php public function isauthoriz
  • PHP-如何根据条件配对数组中的项目

    如何将数组中的项目配对 假设我有一个数组Fighters 我想根据他们的情况将他们配对Weights 体重最接近的拳手应作为配对最佳匹配 但如果他们是在同一个团队中 他们不应该配对 团队 1 战斗机A体重为60 战斗机B体重为65 2队 战
  • 创建单个随机 Magento 优惠券

    我遇到了一些麻烦 我想要做的是每次有人订阅我们的时事通讯时 在 Magento 中自动生成一个随机优惠券代码 这张优惠券可减 10 美元 并且有exp 订阅后两周的日期 因此 我正在尝试编写一个简单的脚本 当提交 订阅我们的时事通讯 表单时
  • PHP 中根据相似值对数组进行分组

    我有一个具有以下结构的数组
  • 我如何向 Windows Server IIS 7 中的文件夹授予权限

    我是 PHP 和 Windows Server 新手 在查看我在 PHP 中创建的表单时遇到以下错误 Error in exception handler The stream or file C inetpub wwwroot wrp a
  • 管理产品页面自定义字段显示在购物车和结账中

    我在产品页面的常规设置选项卡上的 WooCommerce 管理中创建了一个自定义字段 以插入几天的制造时间 我想在购物车和结帐页面上每个产品名称上方显示此自定义字段值 这是我的代码 Insert a Custom Admin Field f

随机推荐

  • 在 iOS 上获取相对于地理北方的俯仰、横滚和偏航?

    我看到我可以检索CMA态度从设备中我可以读取我需要的 3 个值 俯仰 滚动和偏航 据我了解 这个 CMAttitude 对象由 CoreMotion 管理 它是一个传感器融合管理器 用于计算罗盘 陀螺仪和加速度计的正确结果 在 Androi
  • 在装有 VS2013 的计算机上安装 SQL Server 2012 时出现错误 0x84b10001

    我正在尝试安装SQL Server Express 服务包 1在我的 Win8 Pro x64 开发机器上 当我尝试安装它时 总是收到错误 0x84b10001 安装过程中禁用了防病毒软件 以管理员身份完成 我尝试了 2 个版本的 SQL
  • 使用 JSch 打开 SSH 隧道时私钥无效

    With JSch我正在打电话addIdentity 添加私钥并getSession 打开 SSH 隧道 当在我的 Windows 计算机上本地运行此代码时 隧道的打开工作正常 然而 当在我们的 CI 上使用相同的私钥运行相同的代码时 会出
  • 如何使用 Diesel 根据动态参数按列有条件地排序?

    我正在尝试指定不同的列order by取决于外部参数 这可行 但很难看 macro use extern crate diesel use crate diesel prelude use diesel pg PgConnection mo
  • 在 Mac 上使用 Eclipse Galileo 调试 C++ 时遇到问题

    我正在尝试在运行的 MacBook Pro 上使用 Eclipse Galileo 调试 C 代码Mac OS X v10 5 豹 这是我第一次尝试这个 我有一个复杂的 C 程序想要调试 但为了测试一下 我只是尝试调试并逐步执行以下操作 i
  • C 中可以重新定义 { 和 } 吗?

    有什么办法可以做类似的事情吗 define printf s s FUNCTION LINE 这不会编译 但我想知道是否有某种技巧可以有效地获得相同的功能 除了编写一个工具来挂钩预处理步骤 这样做的目的是思考如何获得穷人的代码覆盖率 用宏肯
  • 如何将制表符分隔的文本文件导入Excel?

    我的文件夹中有多个以制表符分隔的文本文件 txt 该文本文件包含第一行作为列标题 我有一个预定义的 Excel 模板 其中包含列名称 我能够将文本文件导入 Excel 模板 但是 我需要做的是如何通过 VBA 来分隔列标题与 Excel 列
  • 如何检查素数

    以下代码列出了从 1 到 10 的所有素数 Dim primeN As Integer Dim primeI As Integer Dim primeFlag As Boolean For primeN 1 To 10 primeFlag
  • Glassfish 4,CDI 中的简单示例因 WELD-001408 依赖关系不满足而失败

    我是 CDI 的新手 这是我的第一个示例 我正在尝试运行它 在网上搜索后 我编写了以下代码 我想要注入的类 public class Temp public Temp public String getMe return something
  • 后退和前进按钮来控制 ajax 负载

    一起哈喽 我正在寻找一种解决方案 其中后退和前进按钮控制我的 ajax 调用历史记录 因此 如果我进行 ajax 调用 然后按 返回 我想重新加载原始页面 如果我执行一次 ajax 调用 然后执行另一个 然后按后退按钮 我想再次执行第一个
  • Selenium Webdriver - 单击隐藏元素

    我正在尝试自动执行 Google Drive 中的上传文件功能 用于传递参数的元素被隐藏 高度为 0px 任何用户操作都不会使该元素可见 因此 我需要解决在元素不可见时单击该元素的问题
  • CMake 不带目录路径的文件的 glob 列表

    如果您使用 glob 文件列表file GLOB 在 CMake 中 所有文件都列出并附有完整路径 如何在 CMake 中 glob 一组文件 仅保存文件名 我读了官方手册在这里我发现了这个 file GLOB
  • SQL Server“文本”数据类型的 WHERE 子句

    其中 CastleType 在 SQL Server 中设置为数据类型 text 查询为 SELECT FROM Village WHERE CastleType foo 我收到错误 数据类型TEXT and VARCHAR在等于运算符中不
  • C# Web API INNER JOIN 和 RETURN 查询值

    EF Model Image References 我计划从数据库读取数据 然后使用内部联接 in C WebApi控制器如下图所示 以下查询适用于内部联接参考 Select FirstName LastName Gender Salary
  • 带有 LEFT JOIN 问题的 SQL 查询

    我在使用左连接 SQL 查询时遇到问题 但不明白为什么它不起作用 我有 3 个表 客户 购买和付款 我试图选择总购买成本小于总付款的客户 即他们的余额大于 0 到目前为止 我有以下内容 Tables Customers id Name Pu
  • OSMDroid zip - 如何添加自定义地图?

    我正在使用 OSMdroid 的 MapView 并且计划添加自定义地图 我无法通过 MOBAC 转换它们 我需要找出格式首选项和特征 你看过一些有关它的信息吗 我已经找了好几个星期了 但没有成功 您是指平铺格式吗 我相信this是一个很好
  • 如何显示指定目录下的文件列表

    如何在PyQt窗口中以ListView的方式显示代码中指定目录下的文件 示例 就像在此 QFileSystemModel 对话框应用程序的右窗格中一样 你必须创建2个QFileSystemModel 一个将显示目录 另一个将显示文件 改变视
  • SpringMVC url 重写与 tuckey UrlRewriteFilter

    如何在 Spring MVC 中重写 url塔基的 UrlRewriteFilter像这样 From http localhost 8080 demo api do method getUser uid 1001 to http local
  • 单元测试自定义 OnRender-Method

    我有一个自定义控件MyControl它继承自Canvas并且里面有自己的逻辑OnRender 方法 它应该在绘图上下文中绘制一些矩形和文本 public class MyControl Canvas protected override v
  • PHP:如何填充数组中的目录结构

    我正在开发一个管理面板 显示服务器上特定位置的目录结构 我有一个递归 php 函数 可以迭代每个文件和文件夹 我不明白的是如何将此目录结构存储在 php 关联数组中 如下所示 array foldername1 0 file if the