我有一个非常大的INI
文件(大约100kb和超过2000行)我试图用PHP解析:$ini_array = parse_ini_file("config.ini");
但该函数会发出警告:PHP Warning: syntax error, unexpected '(' in config.ini on line 1334 in ...
查看第1334
行不会显示任何语法错误。然后我读了这个answer:
简短回答:
不要相信行号,在错误中提到的行之前的行中查找语法错误。
我确信文件中没有错误,因为它在其他工具的生产中用于在Pascal中编写。
所以,
如何手动检查文件是否有错误?
如果文件中没有语法错误,我应该注意parse_ini_file()
的行为吗?
答案 0 :(得分:1)
你可以试试"手册" approch,二分法搜索。
你会发现错误。
答案 1 :(得分:0)
我在PHP手册中找到了:
字符?{} |&〜![()^"不得在密钥中的任何位置使用,并且在值中具有特殊含义。
从PHP 5.3.0
我们可以设置第三个参数scanner_mode
。所以
使用parse_ini_file()
作为第三个参数调用INI_SCANNER_RAW
可以解决问题 - 该函数不会评估值。
默认情况下,该函数使用INI_SCANNER_NORMAL
模式并评估值。