note 102420 added to function.parse-ini-file

[email protected] Sun, 13 Feb 2011 11:36:54 -0800
Newsgroups php.notes
Message-ID <[email protected]>
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;
    }

?>
----
Server IP: 69.147.83.197
Probable Submitter: 80.178.14.240
----
Manual Page -- http://www.php.net/manual/en/function.parse-ini-file.php
Edit        -- https://master.php.net/note/edit/102420
Del: integrated  -- https://master.php.net/note/delete/102420/integrated
Del: useless     -- https://master.php.net/note/delete/102420/useless
Del: bad code    -- https://master.php.net/note/delete/102420/bad+code
Del: spam        -- https://master.php.net/note/delete/102420/spam
Del: non-english -- https://master.php.net/note/delete/102420/non-english
Del: in docs     -- https://master.php.net/note/delete/102420/in+docs
Del: other reasons-- https://master.php.net/note/delete/102420
Reject      -- https://master.php.net/note/reject/102420
Search      -- https://master.php.net/manage/user-notes.php