2017-06-30 71 views
-1

我目前正在使用一种工具来帮助修改游戏,它使用非结构化文件格式,我无法找到一种体面的解析方式。PHP非结构化文件解析器

一个文件的第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,图像等)不要t需要按照显示顺序排列,例如,value = 2可能是列表中的第一个 - 并且某些对象可能不会使用所有项目(例如,锁定不总是在那里)。

  • 多层对象(输出,事件,输出,方便用户)没有严格的限制,可能有10层,有可能仅仅是2

有谁知道任何PHP函数,库等,它们能够解析类似的东西?

+0

正则表达式,字符串函数,数组函数 – vaso123

回答

0

该文件并非非结构化 - 实际上它看起来有一个相当严格的结构,但我们不知道那个结构是什么。当然,它不是XML,JSON,YAML或PHP序列化。

有谁知道任何PHP函数库等

不 - ,问这个问题在这里让你的后题外话。

既然你正在寻找一些东西来阅读这个在PHP中,你大概有一些编程技能。在你尝试这个之前要问的关键问题有:

1)你可以访问的例子涵盖了语法的每一个可能的特征吗? (在你上面的例子中没有数组,没有日期,这些语法经常出现在具有特定语义的语法中)

2)是否存在需要验证的显式模式需求(例如,每个对象都必须具有'img'属性) 。

然后尝试将语法分解为标准格式(它看起来BNF对于此处的任务来说已经足够了)。从那里开始,实现解析器应该很容易。

+0

从来没有听说过BNF,但这有助于理解我正在尝试做什么。谢谢 :) – jordsta95