【发布时间】:2019-11-13 15:10:39
【问题描述】:
需要确保用户提供的 INI 文件没有语法错误,例如
a) 意外语法
[general]zzz
name=test
b) 未填充的列
[custom]
name=
我能知道我们是否可以检查一下吗?
【问题讨论】:
-
你好像忘了问问题
-
是的。我们可以检查一下。
-
INI 故意是一种非常宽松的自我更正格式,如 HTML。第一个例子一般要么是一个名为
zzz\nname的键,要么是一个名为zzz的键,没有值,第二个是一个空值的键。如果任何键包含换行符或任何值是空字符串,则可能会引发错误。或者 Config::INI::Reader 更严格一些(但它仍然会接受第二个示例,因为这是一个完全有效的空字符串值)。 -
在这种情况下 zzz 没有 '=' 符号将认为是有效的密钥,并且它用带有名称的 '\n' 分隔。但是微小的配置没有给我任何警告和错误。