我有一个奇怪的问题,很奇怪,因为谷歌没有出现任何问题.我正在尝试解析一个充满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'];
Run Code Online (Sandbox Code Playgroud)
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,然后查找<space>Content生成错误的尾随文本.
PHP手册说明(例如在页面上parse_ini_file):
值
null,no并false在结果"",yes与true结果"1".
简单的解决方法是将所有值都用双引号括起来,或者在那些以INI关键字开头的那些值中包含,例如:
[codes]
100 = "Continue"
101 = "Switching Protocols"
200 = "OK"
201 = "Created"
202 = "Accepted"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3533 次 |
| 最近记录: |