我目前正在研究一种帮助修改游戏的工具,它使用的是非结构化文件格式,我无法找到一种合适的解析方法。
文件的1个对象的示例,需要解析:
object = {
id = id_1
image = IMG_image_1
require = {
id = id_2
}
priority = 1
value = 2
time = 10
locked = yes
output = {
EVENT = {
OUTPUT = {
USER = {
reward = custom_reward
}
reward = all_players_reward
bonus_reward = {
type = money
amount = 100
instant = yes
}
}
}
}
}
问题是:
对象中的项目(id,图像等)不需要按显示的顺序排列,例如,value = 2
可能是列表中的第一个 - 并且某些对象可能不要使用所有物品(例如锁定并不总是存在)。
多层对象(输出,EVENT,OUTPUT,USER)没有严格限制,可能有10层,可能只有2层。
有没有人知道任何可以解析这样的PHP函数,库等?
答案 0 :(得分:0)
该文件不是非结构化的 - 实际上看起来具有相当严格的结构,但我们不知道该结构是什么。当然它不是XML,JSON,YAML或PHP序列化。
有没有人知道任何PHP函数,库等
不 - 并且在这里提出这个问题会使你的帖子脱离主题。
由于您正在寻找可以在PHP中阅读的内容,因此您可能拥有一些编程技巧。在尝试之前要问的关键问题是:
1)您可以访问的示例涵盖语法的每个可能功能吗? (在上面的示例中,没有数组,没有日期经常出现在具有特定语义的语法中)
2)您是否需要验证明确的架构要求(例如,每个对象都必须具有' img'属性)。
然后尝试将语法分解为标准形式(看起来BNF对于此处的任务来说已经足够了)。从那里开始,实现解析器应该很容易。