INI数据如下所示:
[datasources]
live.dsn = "mysql:host=localhost;dbname=main"
live.user = "root"
live.pass =
我正在使用parse_ini_file()
。
INI_SCANNER_RAW
live.dsn
的解析不正确("mysql:host
)INI_SCANNER_NORMAL
live.dsn
的值是正确的但我不能使用INI_SCANNER_NORMAL
,因为它也会替换常量,“on”与1
等等(不要那样)......有没有修复或做我必须创建自己的解析器吗?
我正在使用PHP 5.3。
答案 0 :(得分:1)
var_dump(parse_ini_string('[datasources]
live.dsn = "mysql:host=localhost;dbname=main"
live.user = "root"', false, INI_SCANNER_RAW));
=>
array(2) {
["live.dsn"]=>
string(32) "mysql:host=localhost;dbname=main"
["live.user"]=>
string(4) "root"
}
我无法重现它。 (它也不适用于parse_ini_file
。)它适用于PHP 5.3和PHP trunk ...
我发现这是旧版PHP中的一个错误,请参阅https://bugs.php.net/bug.php?id=51094。只需升级,它应该工作。如果你无法升级,你真的必须编写自己的ini解析器。