> ------------------------------------------------------------------------------ This is the class for read&write the conf files --------------------------------------------------------------------------- */ class Conf { protected $fileName=""; protected $values=Array(); public function __construct($fileName="") { $this->setFileName($fileName); } public function __destruct() { unset($this->values); } public function read($reset=true) { if(file_exists($this->fileName) and (filesize($this->fileName)>0)) { $fHandle=fopen($this->fileName, "r"); if($fHandle) { $fileContent=fread($fHandle, filesize($this->fileName)); fclose($fHandle); //replace all the '#' char by a ';' char $fileContent=preg_replace('/^(\s*#)/im', ';', $fileContent); $tmpFile=tempnam(dirname(__FILE__), "INI"); $fHandle=fopen($tmpFile, "w"); fwrite($fHandle, $fileContent); fclose($fHandle); if($reset) { unset($this->values); $this->values=Array(); } $values=parse_ini_file($tmpFile); foreach($values as $key => $val) { $this->values[$key] = html_entity_decode($val); } unlink($tmpFile); return(true); } } return(false); } public function write() { if(!file_exists(dirname($this->fileName))) { mkdir(dirname($this->fileName),0777,true); } $fHandle=fopen($this->fileName, "w"); if($fHandle) { foreach($this->values as $key => $val) { if(is_string($val)) { fwrite($fHandle, $key.'="'.htmlentities(str_replace(Array("\r\n", "\n", "\r"),"",$val))."\"\n"); } elseif(is_bool($val)) { fwrite($fHandle, $key.'='.($val?'true':'false')."\n"); } else { fwrite($fHandle, $key.'='.$val."\n"); } } fclose($fHandle); return(true); } return(false); } public function setFileName($fileName) { if($fileName!="") { $this->fileName=$fileName; } return($this->fileName); } public function getFileName($fileName) { return($this->fileName); } public function getConf() { return($this->values); } public function getConfValue($key) { if(array_key_exists($key, $this->values)) { return($this->values[$key]); } return(""); } public function setConf($values, $reset=true) { if(is_array($values)) { if($reset) { unset($this->values); $this->values=Array(); } foreach($values as $key => $val) { $this->values[$key]=$val; } } return($this->values); } } ?>