【发布时间】:2018-09-11 12:03:16
【问题描述】:
关于 PHP 的 parse_ini_file() 中的一些怪癖,我有两个问题。
有些保留字不能用作 ini 的键 文件。其中包括:null、yes、no、true、false、on、off、none。 值 null、off、no 和 false 导致 "",值 on、yes 和 true 结果为“1”,除非使用 INI_SCANNER_TYPED 模式(从 PHP 5.6.1)。
根据上述,如果你设置INI_SCANNER_TYPED,你可以使用no作为key。那么为什么会失败呢?
$ echo "no=1" > a.cfg | php -r 'print_r(parse_ini_file("a.cfg", TRUE, INI_SCANNER_TYPED));'
PHP Warning: syntax error, unexpected BOOL_FALSE in tmp.cfg on line 1
$ php --version
PHP 7.1.14 (cli) (built: Feb 2 2018 08:41:46) ( NTS )
另外,下面列出的字符的“特殊含义”是什么?手册不详。
字符 ?{}|&~!()^" 不得用于键中,且在值中具有特殊含义。
【问题讨论】: