在PHP中解析自定义配置文件
我正在尝试折叠一个用PHP读取的文件,并生成配置一行程序,以便在我的应用程序的其他地方使用。我使用的PHP脚本从一个系统中提取这个文件,我可以在bash提示符下使用在PHP中解析自定义配置文件,php,Php,我正在尝试折叠一个用PHP读取的文件,并生成配置一行程序,以便在我的应用程序的其他地方使用。我使用的PHP脚本从一个系统中提取这个文件,我可以在bash提示符下使用set命令对其进行配置 例如,命令 设置系统ntp服务器0.pool.ntp.org 设置系统ntp服务器1.pool.ntp.org 设置系统ntp服务器2.pool.ntp.org 将在系统的配置文件中生成此结构: 系统{ ntp{ 服务器0.pool.ntp.org{ } 服务器1.pool.ntp.org{ } 服务器2.po
set
命令对其进行配置
例如,命令
设置系统ntp服务器0.pool.ntp.org
设置系统ntp服务器1.pool.ntp.org
设置系统ntp服务器2.pool.ntp.org
将在系统的配置文件中生成此结构:
系统{
ntp{
服务器0.pool.ntp.org{
}
服务器1.pool.ntp.org{
}
服务器2.pool.ntp.org{
}
}
}
。。我希望让我的PHP脚本读取此文件并生成以下输出:
系统ntp服务器0.pool.ntp.org
系统ntp服务器1.pool.ntp.org
system ntp server 2.pool.ntp.org
我不确定该如何处理这个问题,甚至在编写psudo代码以理解如何折叠这些节点并生成所需的行时遇到问题。让我感到困难的是,配置节点的深度可能会有所不同,例如:
系统登录用户root身份验证加密密码
。。生成结构
系统{
登录{
用户根{
认证{
加密密码
}
}
}
}
。。并与上面的NTP命令合并,整个配置文件如下所示:
系统{
登录{
用户根{
认证{
加密密码
}
}
}
ntp{
服务器0.pool.ntp.org{
}
服务器1.pool.ntp.org{
}
服务器2.pool.ntp.org{
}
}
}
有没有人可以建议一些方法
{
或}
,请将该项目拆分为两个项目,以便在最后每个括号都是自己的项目- 如果项目是一个开始的括号:创建一个新的子数组,并将后面的所有内容都放在其中
- 如果项目是右括号,则终止子数组并继续上一个父数组
- 如果两者都没有,就把它放进去
有了这个小算法,您应该能够循环配置并创建所需的输出。例如,按与
ntp
匹配的键进行筛选。有创意:)您是否可以选择切换到更标准的格式?您当前的格式非常接近JSON,如果您有权访问创建配置的脚本,您将有许多简单的选项。系统如何知道用户root
是一个键,而不是像{user{root…
中那样的两个separeate键?是否有允许的键列表?