uchenik
Новичок
parse_ini_file() для многомерных массивов
Я расширил функцию parse_ini_file() для разбора конфиг-файла с массивом настроек неограниченной вложенности.
Данные в файле следует записывать следующим образом:
[football]
season = 2005/2006
[football/Russia]
0 = Zenit
1 = Spartak
[football/Spain]
0 = Real Madrid
1 = Valencia
и т.д.
На выходе получим массив:
Если кому пригодится - вот код функции:
, где
$file - конфиг-файл
$separator - разделитель ключей между квадратных скобок "[ ]"
Я расширил функцию parse_ini_file() для разбора конфиг-файла с массивом настроек неограниченной вложенности.
Данные в файле следует записывать следующим образом:
[football]
season = 2005/2006
[football/Russia]
0 = Zenit
1 = Spartak
[football/Spain]
0 = Real Madrid
1 = Valencia
и т.д.
На выходе получим массив:
PHP:
Array
(
[football] => Array
(
[season] => 2005/2006
[Russia] => Array
(
[0] => Zenit
[1] => Spartak
)
[Spain] => Array
(
[0] => Real Madrid
[1] => Valencia
)
)
)
PHP:
function parse_config_file($file, $separator)
{
function infill(&$config, &$k, $v)
{
while(list($key, $configkey) = each($k))
{
if($key + 1 == sizeof($k)) {
$config[$configkey] = $v;
}
infill($config[$configkey], $k, $v);
}
}
$config = array();
$data = parse_ini_file($file, true);
foreach($data as $k => $v) {
infill($config, explode($separator, $k), $v);
}
return $config;
}
$file - конфиг-файл
$separator - разделитель ключей между квадратных скобок "[ ]"