您必须推出自己的自定义解决方案来解析此 INI 文件,因为 PHP 内置的parse_ini_file基于 PHP 自己的 php.ini 格式约束。所以它必须是有效的PHP。
出于您的目的,如果要求与每行上的键/值对一样简单,但一次性搁浅值作为默认布尔值 true 除外,那么您可以执行以下操作。
function my_parse_ini($ini_file_name) {
$ini = file($ini_file_name, FILE_IGNORE_NEW_LINES);
$return = array();
$row = null;
foreach ($ini as $key => $value) {
if ($value == '') {
$row = null;
continue;
}
@list($k, $v) = explode('=',$value);
if ($v === null) {
$v = true;
}
if ($row === null) {
$row = $v;
$return[$row] = array();
continue;
}
$return[$row][$k] = $v;
}
return $return;
}
/* usage */
var_dump(my_parse_ini('test.ini'));
这将为您的示例 ini 文件输出以下内容....
array(2) {
[11668]=>
array(4) {
["Name"]=>
string(3) "PCA"
["PPA"]=>
bool(true)
["Relation"]=>
string(6) "Family"
["RowID"]=>
string(5) "31999"
}
[11593]=>
array(2) {
["Name"]=>
string(8) "CRMLEVEL"
["Relation"]=>
string(6) "Family"
}
}