Hallo Ihr Lieben ich bins nochmal.
Ich hab noch ne kleinigkeit entdeckt an der ich jetzt schon den ganzen abend rumbastele aber ich komme einfach zu keinem Ziel.
Und zwar hab ich folgendes Problem:
Erstmal hier der Code:
PHP-Code:
function parseIniFile($iIniFile)
{
$aResult =
$aMatches = array();
$a = &$aResult;
$s = '\s*([[:alnum:]_\- \*]+?)\s*'; preg_match_all('#^\s*((\['.$s.'\])|(("?)'.$s.'\\5\s*=\s*("?)(.*?)\\7))\s*(;[^\n]*?)?$#ms', @file_get_contents($iIniFile), $aMatches, PREG_SET_ORDER);
foreach ($aMatches as $aMatch)
{
if (empty($aMatch[2]))
$a [$aMatch[6]] = $aMatch[8];
else $a = &$aResult [$aMatch[3]];
}
return $aResult;
}
function array_to_ini($array){
foreach($array as $key => $value){
if(is_array($value)){
$output .= "[$key]\n";
foreach($value as $key2 => $value2){
$output .= "$key2=$value2\n";
}
} else {
$output .= "$key=$value\n";
}
}
return $output;
}
function file_put_contents($filename, $data) {
if ( is_array($data) ) {
$data = implode('', $data);
}
$handle = fopen ($filename, 'w');
// Datei zum schreiben oeffnen und Inhalt loeschen
$return = fwrite($handle, $data, strlen($data));
// Inhalt in die Datei schreiben
fclose($handle);
// Datei schliessen
return $return;
}
$ini_array = parseIniFile("lmo/ligen/1-liga-5-saison.l98",true);
$ini_array[$lmo_id]['NOT'] = $trainer_name;
$ini_array[$lmo_id]['URL'] = $icq;
$ini_array[$lmo_id]['URL2'] = $trainer_id;
$ini_array[$lmo_id]['URL3'] = $trainer_id;
$neue_ini = array_to_ini($ini_array);
file_put_contents("lmo/ligen/1-liga-5-saison.l98", $neue_ini);
Nun zu dem Problem. Wenn ich die Ini Datei im Urzustand anschaue hat sie auch einzelne Felder die nach dem = keinen Wert haben und leer sind. Diese füllen sich erst im laufe der Zeit (Saison) mit Berichten usw. Das Problem ist aber das sie bei dem erstellen des ganzen immer gleich in der INI mit drin sind.
INI im Originalzustand:
(z.B hier die Felder NT1, BE1 und TI1)
[Round2]
D1=01.01.2009
D2=01.01.2010
TA1=16
TB1=13
GA1=2
GB1=3
NT1=
BE1=
TI1=
AT1=1231527600
TA2=14
TB2=11
GA2=1
GB2=3
NT2=
BE2=
TI2=
AT2=1231855200
Nun die Ini nach dem ersten Speichern durch das Script. (Die angaben werden korrekt gespeichert aber die Felder die leer sind werden durch das darunterliegende Feld gefüllt und das sieht dann so aus.
[Round2]
D1=01.01.2009
D2=01.01.2010
TA1=16
TB1=13
GA1=2
GB1=3
NT1=BE1=
TI1=AT1=1231527600
TA2=14
TB2=11
GA2=1
GB2=3
NT2=BE2=
TI2=AT2=1231855200
Nun wollt ich mal fragen ob hier vieleicht jemand von Euch ne Lösung zur Hand hat wie ich dies verhindern kann. Ich probiere schon den ganzen Nachmittag und Abend daran rum und verzweifle bald.
Nach mehrmaligem speichern zerstört mir das natürlich die ganze INI Datei und macht sie unbrauchbar.
Wäre von daher für abhilfe sehr dankbar.
LG
Kallewaze