<?
/**************************************************************************************************/
/**************************************************************************************************/
/**# Funktionen #**/
/**************************************************************************************************/
/**************************************************************************************************/
/**# readIni() - Liest das ganze Ini-File aus und speichert #**/
/**# es in einem assoziativen Array #**/
/**# checkIniValue() - Prüft ob einem Setting bereits ein Wert #**/
/**# zugewiesen wurde und gibt bei Erfolg #**/
/**# den Settingwert zurück #**/
/**# writeError() - Schreibt einen eventuellen Fehler ins #**/
/**# in das File 'error_log.txt' #**/
/**# writeIni() - Schreibt das Ini-File neu, indem es das #**/
/**# modifizierte Array ins File schreibt #**/
/**# modifyParam() - Diese Funktion wird gebraucht, wenn nur #**/
/**# ein bestimmter Parameter modifiziert #**/
/**# werden soll #**/
/**************************************************************************************************/
/**************************************************************************************************/
class HandleIni {
/**************************************************************************************************/
/**************************************************************************************************/
public static function readIni($show_sections = FALSE, $ini_path = PATH_CONFIG_INI) {
$ini = parse_ini_file($ini_path, $show_sections);
return($ini);
}
/**************************************************************************************************/
/**************************************************************************************************/
public static function getSettingVal($setting_name) {
$err_msg = "";
$return_msg = FALSE;
$ini = HandleIni::readIni();
if(empty($ini[$setting_name])) {
$val_chk = array_key_exists($setting_name, $ini);
if($val_chk == FALSE) {
$err_msg = "Fktn. getSettingVal: Das Element \"".$setting_name."\" existiert nicht!";
HandleIni::writeError($err_msg);
}
}else{
$return_msg = $ini[$setting_name];
}
return($return_msg);
}
/**************************************************************************************************/
/**************************************************************************************************/
public static function writeError($err_msg) {
trim($err_msg);
$date = date("D, d M. Y, H:i:s");
$fh = fopen(PATH_LOGS."ini_error_log.txt", 'a');
fprintf($fh, "%s | %s\n", $date, $err_msg);
fclose($fh);
}
/**************************************************************************************************/
/**************************************************************************************************/
public static function writeIni($assoc_array, $path = PATH_CONFIG_INI) {
$hlp_cnt=0;
$content="";
foreach ($assoc_array as $key => $item) {
if (is_array($item)) {
$content .= ($hlp_cnt!=0?"\n":"");
$content .= "[$key]\n";
foreach ($item as $key2 => $item2) {
$content .= "$key2 = \"$item2\"\n";
}
} else {
$content .= "$key = \"$item\"\n";
}
$hlp_cnt++;
}
if (!$handle = fopen($path, 'w')) {
return false;
}
if (!fwrite($handle, $content)) {
return false;
}
fclose($handle);
return true;
}
/**************************************************************************************************/
/**************************************************************************************************/
public static function modifyParam($section, $param, $value) {
$ini = HandleIni::readIni(TRUE);
$ini[$section][$param] = $value;
HandleIni::writeIni($ini);
}
/**************************************************************************************************/
/**************************************************************************************************/
}
?>