我有一个奇怪的问题,很奇怪,因为谷歌没有出现任何问题.我正在尝试解析一个充满HTTP状态代码的ini文件,StatusCodes.ini.我在三个不同的环境中进行了测试,在共享主机(Hostmonster.com)上本地(WAMP),现在在运行CentOS w/CPanel/WHM的专用机器上进行测试.前两个环境似乎工作正常,但在专用机器上我收到警告:
Warning: syntax error, unexpected TC_CONSTANT in StatusCodes.ini on line 8
在跑步时:
$ini = parse_ini_file('StatusCodes.ini',true); $codes = $ini['codes'];
ini文件看起来像:
[codes] 100 = Continue 101 = Switching Protocols 200 = OK 201 = Created 202 = Accepted 203 = Non-Authoritative Information 204 = No Content 205 = Reset Content 206 = Partial Content 300 = Multiple Choices 301 = Moved Permanently 302 = Found 303 = See Other 304 = Not Modified 305 = Use Proxy 307 = Temporary Redirect 400 = Bad Request ...
在你不想计算的情况下,204 = No Content,是第8行.我已经把这条线拿走了,没有任何改变.有什么建议?
正如你所指出的那样,问题在于线204 = No Content
.
这是因为No
它是INI文件中的特殊值(以及其他文件).INI解析器到达此行并读取键的No
值204
,然后查找
生成错误的尾随文本.
PHP手册说明(例如在页面上parse_ini_file
):
值
null
,no
并false
在结果""
,yes
与true
结果"1"
.
简单的解决方法是将所有值都用双引号括起来,或者在那些以INI关键字开头的那些值中包含,例如:
[codes] 100 = "Continue" 101 = "Switching Protocols" 200 = "OK" 201 = "Created" 202 = "Accepted"