0

INI 数据如下所示:

[datasources]
live.dsn   = "mysql:host=localhost;dbname=main"
live.user  = "root"
live.pass  =

我正在使用parse_ini_file().

  • withINI_SCANNER_RAW live.dsn解析不正确 ( "mysql:host)
  • INI_SCANNER_NORMALlive.dsn是正确的

但我不能使用INI_SCANNER_NORMAL,因为那样它也会替换常量,“on”1等等(不想要那个)......有什么解决方法还是我必须创建自己的解析器?

我正在使用 PHP 5.3。

4

1 回答 1

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 主干...


我看到这是旧 PHP 版本中的一个错误,请参阅https://bugs.php.net/bug.php?id=51094。只需升级,然后它应该可以工作。如果你无法升级,你真的必须编写自己的 ini 解析器。

于 2013-04-18T16:14:18.203 回答