基本上,我想要一种简单、易用、单文件的方式来解析INI文件,具有“高级”功能,例如部分继承和属性嵌套,就像Zend_Config_Ini那样。
例如:
[foo]
a = 1
b.a = 2
b.b = 3
b.c = 4
c = 5
[bar : foo]
b.b = 17
c = 42
将解析为
array(
'foo'=>array(
'a'=>'1',
'b'=>array(
'a'=>'2',
'b'=>'3',
'c'=>'4'
),
'c'=>'5'
),
'bar'=>array(
'a'=>'1',
'b'=>array(
'a'=>'2',
'b'=>'17',
'c'=>'4'
),
'c'=>'42'
)
)
PHP内置的parse_ini_file
仅处理简单INI文件,具有简单的节和简单的键。
我不想使用Zend_Config_Ini
,因为它必须包含几乎整个Zend_Config子包,而且过于臃肿和可配置化。
是否有一个可用于解析这个文件的小型和简单库?
如果没有,有没有我没有看到的简单实现方法?
我所说的小而简单是指类似于INI文件的sfYaml。
以我的(非常缺乏经验的)眼光来看,我需要使用parse_ini_file
进行一次解析,然后返回并解决继承关系,然后逐个节运行并递归扩展键...
更新: 由于这似乎是一个流行的问题,我想指出我在GitHub上有一个实现此功能的简单类,随时可以发送拉取请求、问题等。