PHP 配置.ini使用多级数组解析文件


PHP Config.ini file parsing with multi-level arrays

我有一个config.ini文件,其中包含许多此类变量:

site.social.twitter = "URL"
site.social.facebook = "URL"
site.social.google-plus = "URL"

我使用 PHP 的内置函数来解析 INI。

$config = parse_ini_file(__DIR__ ."/../config.ini");

下一步是得到这个(site.social.twitter)成为数组。

$config['site']['social']['twitter']

你可以只是"爆炸()",但它并没有完全到达那里。对于这样的事情,有没有更简单的解决方案?

好的,所以你可以看看使用部分和 INI 文件的数组语法,例如:

[site]
social[twitter] = URL
social[facebook] = URL
social[google-plus] = URL

然后将true作为第二个参数传递:

$config = parse_ini_file(__DIR__ ."/../config.ini", true);

或者使用您现有的 INI 结构构建(改编自如何通过键名/路径访问和操作多维数组?

$array = array();
foreach($config as $path => $value) {
    $temp = &$array;
    foreach(explode('.', $path) as $key) {
        $temp =& $temp[$key];
    }
    $temp = $value;
}
$config = $array;
print_r($config);

简单地引用$config['site']['social']就能得到你想要的数组吗?根据文档,这应该产生:

Array
    (
        [twitter] => "URL"
        [facebook] => "URL"
        [google-plus] => "URL"
    )