我有一个奇怪的问题,很奇怪,因为Google上什么都没有。我正在尝试解析一个包含HTTP状态代码StatusCodes.ini的ini文件。我已经在三种不同的环境中进行了测试,分别在共享主机(Hostmonster.com)上的本地(WAMP)和现在在运行带有CPanel / WPanel的CentOS的专用计算机上进行了测试。前两个环境似乎运行良好,但是在专用计算机上,我收到警告:

Warning:  syntax error, unexpected TC_CONSTANT in StatusCodes.ini on line 8

when running:

$ini = parse_ini_file('StatusCodes.ini',true);
$codes = $ini['codes'];

ini文件如下所示:

[代码]
100 =继续
101 =交换协议(protocol)
200 =好
201 =已创建
202 =已接受
203 =非权威信息
204 =无内容
205 =重置内容
206 =部分内容
300 =多项选择
301 =永久移动
302 =找到
303 =查看其他
304 =未修改
305 =使用代理
307 =临时重定向
400 =错误的请求
...

如果您不想计数,则第8行是204 =无内容。我已经删除了该行,没有任何变化。有什么建议么?

最佳答案

正如您所指出的,问题在于204 = No Content行。

这是因为No是INI文件(以及其他文件)中的特殊值。 INI解析器到达这一行,并读取No密钥的204值,然后找到产生错误的尾随<space>Content文本。

PHP手册说明(例如 parse_ini_file 的页面上):



简单的解决方法是将所有值括在双引号中,或者至少租用以INI关键字开头的值,例如:

[codes]
100 = "Continue"
101 = "Switching Protocols"
200 = "OK"
201 = "Created"
202 = "Accepted"

关于php - PHP parse_ini_file TC_CONSTANT警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4059834/

10-13 04:33