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文件的语法?”-任何具有成对匹配的好代码编辑器都是您“需要的”。