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

时间:2016-03-10 20:43:40

标签: php arrays config ini

我有一个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']

你可以'爆炸()',但它并不完全达到目的。对这样的事情有没有更简单的解决方案?

2 个答案:

答案 0 :(得分:5)

好的,您可以查看使用INI文件的节和数组语法,例如:

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

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

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

或者使用现有的INI结构(改编自How to access and manipulate multi-dimensional array by key names / path?)进行构建:

$array = array();

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

答案 1 :(得分:-1)

简单引用$config['site']['social']是否可以获得所需的数组?根据{{​​3}},这应该产生:

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