Source for file IniFile.php
Documentation is available at IniFile.php
// +----------------------------------------------------------------------+
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2003 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Bertrand Mansion <bmansion@mamasam.com> |
// +----------------------------------------------------------------------+
// $Id: IniFile.php,v 1.17 2005/12/24 02:36:56 aashley Exp $
* Config parser for PHP .ini files
* Faster because it uses parse_ini_file() but get rid of comments,
* quotes, types and converts On, Off, True, False, Yes, No to 0 and 1.
* @author Bertrand Mansion <bmansion@mamasam.com>
* @param string $options (optional)Options to be used by renderer
* Parses the data of the given configuration file
* @param string $datasrc path to the configuration file
* @param object $obj reference to a config object
* @return mixed returns a PEAR_ERROR, if error occurs or true if ok
return PEAR ::raiseError ("Datasource file does not exist.", null , PEAR_ERROR_RETURN );
$currentSection = & $obj->container;
return PEAR ::raiseError (" File '$datasrc' does not contain configuration data." , null , PEAR_ERROR_RETURN );
foreach ($confArray as $key => $value) {
$currentSection = & $obj->container ->createSection ($key);
foreach ($value as $directive => $content) {
// try to split the value if comma found
if (strpos($content, '"') === false ) {
if (count($values) > 1 ) {
foreach ($values as $k => $v) {
$currentSection->createDirective ($directive, $v);
$currentSection->createDirective ($directive, $content);
$currentSection->createDirective ($directive, $content);
$currentSection->createDirective ($key, $value);
} // end func parseDatasrc
* Returns a formatted string of the object
* @param object $obj Container object to be output as string
static $childrenCount, $commaString;
$string = ';'. $obj->content. "\n";
$count = $obj->parent ->countChildren ('directive', $obj->name );
$content = $obj->content;
if ($content === false ) {
} elseif ($content === true ) {
strpos($content, ',') !== false ||
strpos($content, ';') !== false ||
strpos($content, '=') !== false ||
strpos($content, '"') !== false ||
strpos($content, '%') !== false ||
strpos($content, '~') !== false ) {
// multiple values for a directive are separated by a comma
if (isset ($childrenCount[$obj->name ])) {
$childrenCount[$obj->name ]++;
$childrenCount[$obj->name ] = 0;
$commaString[$obj->name ] = $obj->name. '=';
if ($childrenCount[$obj->name ] == $count-1 ) {
// Clean the static for future calls to toString
$string .= $commaString[$obj->name ]. $content. "\n";
unset ($childrenCount[$obj->name ]);
unset ($commaString[$obj->name ]);
$commaString[$obj->name ] .= $content. ', ';
$string = $obj->name. '='. $content. "\n";
$string = '['. $obj->name. "]\n";
if (count($obj->children ) > 0 ) {
for ($i = 0; $i < count($obj->children ); $i++ ) {
$string .= $this->toString($obj->getChild ($i));
} // end class Config_Container_IniFile
Documentation generated on Mon, 11 Mar 2019 14:57:44 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|