解析带括号的ini文件
Parse ini file with brackets
我有一个包含方括号的 .ini 文件 ( )
正如 php.net 推荐我 parse.ini 带有 parse_ini_file() 函数的文件,所以假设我的代码看起来像:
$ini = parse_ini_file('files/models.ini');
然后错误看起来像:
Warning: syntax error, unexpected '(' in files/models.ini on line 4 in \index.php on line 48
这是第 4 行的文字
00name1=100 08/82-11/90 (443/445) Typový sešit [V] [27]
问题是我正在从外部站点获取此文件,但我无法更改它,
我从多个站点注意到一些词在 ini 文件中有特殊含义,例如 "null" "true" "no" "yes" 但这种情况并非如此。
所以有人可以告诉我我做错了什么,或者如果这是不可能的,有什么解决方法吗?
您可以使用选项 INI_SCANNER_RAW
:
$ini = parse_ini_file('files/models.ini', false, INI_SCANNER_RAW);
If INI_SCANNER_RAW is supplied, then option values will not be parsed.
我的测试结果:
$ php test.php
array(1) {
["foo"]=>
string(9) "foo (bar)"
["00name1"]=>
string(49) "100 08/82-11/90 (443/445) Typový sešit [V] [27]"
}
我有一个包含方括号的 .ini 文件 ( )
正如 php.net 推荐我 parse.ini 带有 parse_ini_file() 函数的文件,所以假设我的代码看起来像:
$ini = parse_ini_file('files/models.ini');
然后错误看起来像:
Warning: syntax error, unexpected '(' in files/models.ini on line 4 in \index.php on line 48
这是第 4 行的文字
00name1=100 08/82-11/90 (443/445) Typový sešit [V] [27]
问题是我正在从外部站点获取此文件,但我无法更改它,
我从多个站点注意到一些词在 ini 文件中有特殊含义,例如 "null" "true" "no" "yes" 但这种情况并非如此。
所以有人可以告诉我我做错了什么,或者如果这是不可能的,有什么解决方法吗?
您可以使用选项 INI_SCANNER_RAW
:
$ini = parse_ini_file('files/models.ini', false, INI_SCANNER_RAW);
If INI_SCANNER_RAW is supplied, then option values will not be parsed.
我的测试结果:
$ php test.php
array(1) {
["foo"]=>
string(9) "foo (bar)"
["00name1"]=>
string(49) "100 08/82-11/90 (443/445) Typový sešit [V] [27]"
}