Разбор файла PHP 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']

Вы можете просто «взорвать ()», но это не совсем так. Есть ли более простые решения для чего-то подобного?

3

Решение

Итак, вы можете посмотреть на использование разделов и синтаксиса массива для файлов 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);
3

Другие решения

Делает просто ссылки $config['site']['social'] получить массив, который вы хотите? Согласно документация это должно привести к:

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

По вопросам рекламы ammmcru@yandex.ru