PHP Config.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']
您可以 'explode()',但还不够。对于这样的事情有没有更简单的解决方案?
是否仅引用 $config['site']['social']
就能得到您想要的数组?根据 documentation 这应该产生:
Array
(
[twitter] => "URL"
[facebook] => "URL"
[google-plus] => "URL"
)
好的,所以您可以查看 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.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']
您可以 'explode()',但还不够。对于这样的事情有没有更简单的解决方案?
是否仅引用 $config['site']['social']
就能得到您想要的数组?根据 documentation 这应该产生:
Array
(
[twitter] => "URL"
[facebook] => "URL"
[google-plus] => "URL"
)
好的,所以您可以查看 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);