note 102420 deleted from function.parse-ini-file by danbrown
[email protected] Sun, 13 Feb 2011 11:54:02 -0800
| Newsgroups | php.notes |
|---|---|
| Message-ID | <[email protected]> |
Note Submitter: Mendi
----
Here is a small improvement to jeremygiberson at gmail dot com function to avoid notices
<?
/**
* Parses INI file adding extends functionality via ":base" postfix on namespace.
*
* @param string $filename
* @return array
*/
function parse_ini_file_extended($filename) {
// if cannot open file, return false
if (!is_file($filename))
return false;
$p_ini = parse_ini_file($filename, true);
$config = array();
foreach($p_ini as $namespace => $properties){
$exploded = explode(':', $namespace);
$name = $exploded[0];
if(isset($exploded[1]))
$extends = $exploded[1];
else
$extends = false;
$name = trim($name);
$extends = trim($extends);
// create namespace if necessary
if(!isset($config[$name])) $config[$name] = array();
// inherit base namespace
if(isset($p_ini[$extends])){
foreach($p_ini[$extends] as $prop => $val)
$config[$name][$prop] = $val;
}
// overwrite / set current namespace values
foreach($properties as $prop => $val)
$config[$name][$prop] = $val;
}
return $config;
}
?>