Php parse_ini_file()是否有我应该注意的特殊行为?
我有一个相当大的Php parse_ini_file()是否有我应该注意的特殊行为?,php,arrays,ini,Php,Arrays,Ini,我有一个相当大的INI文件(大约100kb,超过2000行),我正试图用PHP解析它:$INI\u array=parse\u INI\u文件(“config.INI”) 但是该函数会抛出一个警告:PHP警告:语法错误,意外的“(”在config.ini中的第1334行… 查看第1334行不会显示任何语法错误。然后我阅读了以下内容: 简短答复: 不要相信行号,在错误中提到的行之前的行中查找语法错误 我确信该文件中没有错误,因为它是由另一个用Pascal编写的工具在生产中使用的 所以 如何手动检
INI
文件(大约100kb,超过2000行),我正试图用PHP解析它:$INI\u array=parse\u INI\u文件(“config.INI”)代码>
但是该函数会抛出一个警告:PHP警告:语法错误,意外的“(”在config.ini中的第1334行…
查看第1334行不会显示任何语法错误。然后我阅读了以下内容:
简短答复:
不要相信行号,在错误中提到的行之前的行中查找语法错误
我确信该文件中没有错误,因为它是由另一个用Pascal编写的工具在生产中使用的
所以
- 如何手动检查文件中的错误
- 如果文件中不存在语法错误,是否存在我应该注意的
parse\u ini\u file()
行为
您可以尝试“手动”方法,即二分法搜索
拆下管路1333后的管路
然后按(大)块删除前面的行,直到没有错误为止
按较小的块添加行,直到再次出现错误
您将发现错误。我在PHP手册中找到:
字符?{}|&~![()^“不得在键中的任何位置使用,并且在值中具有特殊含义
从PHP5.3.0
中,我们可以设置第三个参数scanner\u mode
使用ini\u SCANNER\u RAW
作为第三个参数调用parse\u ini\u file()
,该函数不计算值
默认情况下,该函数使用INI\u SCANNER\u NORMAL
模式并计算值。“是否有工具可以帮助我检查INI文件的语法?”-任何具有成对匹配的好代码编辑器都是您“需要的”。