我有一个相当大的INI,我解析并验证以确保已设置所有必需的设置。如果我需要添加/删除INI设置,这是一个巨大的痛苦。
在我的PHP脚本中,我使用这样的东西:
$ini = parse_ini_file($this->ini_filename, true);
// Debug Settings
if(isset($ini['debug_settings']['debug'])) {
$this->debug = $ini['debug_settings']['debug'];
} else {
$this->failedINIValidation("['debug_settings']['debug'] not configured in the INI file: ");
}
failedINIValidation()向我发送一封电子邮件,其中包含缺少的INI字段/值/ etc ...
想让这个更通用,有什么想法吗?
答案 0 :(得分:1)
只是把它当作一个想法,它已经很晚了,我很累,但是如果定义的数组包含你要检查的结构,运行array_diff
然后循环结果(如果有的话) )致电failedINIValidation
。
然后,如果要在INI文件中添加或删除任何内容,只需从数组中删除该项即可。
除非您的INI文件非常复杂,否则我不会担心开销。我运行了一些快速而肮脏的基准测试来验证我在其他地方看到的声明:使用parse_ini_file
比包含包含本机array
对象的配置文件更快。