用括号解析ini文件

And*_*rit 5 php ini parsing

我有一个包含括号的.ini文件( ) 作为php.net recomend我用parse_ini_file()函数调用我的parse.ini文件,所以让我说我的代码如下:

$ini = parse_ini_file('files/models.ini');
Run Code Online (Sandbox Code Playgroud)

然后错误看起来像:

Warning: syntax error, unexpected '(' in files/models.ini on line 4 in \index.php on line 48
Run Code Online (Sandbox Code Playgroud)

这是第4行的文字

00name1=100 08/82-11/90 (443/445) Typový sešit [V] [27]
Run Code Online (Sandbox Code Playgroud)

问题是我从外部获取此文件,我无法更改它,

从多个站点我注意到一些单词在ini文件中有特殊含义,如"null""true""no""yes"但这不是这种情况.

所以,有人可以告诉我我做错了什么,或者这是不可能的有任何解决方法吗?

Ger*_*der 7

您可以使用以下选项INI_SCANNER_RAW:

$ini = parse_ini_file('files/models.ini', false, INI_SCANNER_RAW);
Run Code Online (Sandbox Code Playgroud)

文档:

如果提供了INI_SCANNER_RAW,则不会解析选项值.

我的测试结果:

$ 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]"
}
Run Code Online (Sandbox Code Playgroud)