首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中解析自定义配置文件

在PHP中解析自定义配置文件
EN

Stack Overflow用户
提问于 2014-09-19 20:42:46
回答 1查看 90关注 0票数 0

我正在尝试折叠一个我正在用PHP读取的文件,并生成我可以在应用程序的其他地方使用的配置行。我拥有的PHP脚本从一个系统中拉出这个文件,我可以在bash提示符下使用set命令对其进行配置。

例如,命令

set system ntp server 0.pool.ntp.org

set system ntp server 1.pool.ntp.org

set system ntp server 2.pool.ntp.org

将在系统的配置文件中生成以下结构:

system { ntp { server 0.pool.ntp.org { } server 1.pool.ntp.org { } server 2.pool.ntp.org { } } }

。。我想让我的PHP脚本读取这个文件并生成以下输出:

system ntp server 0.pool.ntp.org

system ntp server 1.pool.ntp.org

system ntp server 2.pool.ntp.org

我不确定我将如何处理这一点,甚至在编写psudo代码以理解如何折叠这些节点并生成我想要的行时也遇到了问题。让我感到困难的是配置节点的深度可能会有所不同,例如:

system login user root authentication encrypted-password <password>

。。生成结构..

system { login { user root { authentication { encrypted-password <password> } } } }

。。并与上面的NTP命令合并,整个配置文件如下所示:

system { login { user root { authentication { encrypted-password <password> } } } ntp { server 0.pool.ntp.org { } server 1.pool.ntp.org { } server 2.pool.ntp.org { } } }

有没有人可以建议的方法?

EN

回答 1

Stack Overflow用户

发布于 2014-09-19 20:51:17

  1. 获取配置文件并创建其数组,其中每一行都是数组的一项
  2. 如果其中一项中有{},则将该项拆分为两项,以便在末尾每个括号都是自己的项
  3. 创建一个函数,该函数创建一个具有以下规则的数组:<代码>H19如果该项是左括号:创建一个新的子数组,并将后面的所有内容放在其中<代码>H210<代码>如果该项是结束括号,则终止该子数组并在上一个父数组中继续
    • 如果都不是,put it inside

有了这个小小的算法,你应该能够循环你的配置并创建你想要的输出。例如,根据与ntp匹配的key进行过滤。在这里要有创意:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25934223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档