Hallo Forum,
im unten dargestellten Script geht es darum ein Logfile zu erstellen, in welchem die Kopfzeilen immer aktualisiert werden (MA und LAUF) und zusätzlich der letzte Eintrag immer unterhalb #BOF steht.
Weil dieses Logfile in eine Webseite zu verfolgen ist, dieses sich alle 10 sekunden erneuert, muss man im normalen ‚anhängen‘ immer wieder scrollen um den letzten Eintrag zu sehen. Mit u.g. Script könnte ich mir das ersparen.
Nun zum Problem(chen).
So wie das Script dort steht, läuft es wunderbar.
Wenn ich aber beim 2. Aufruf den logger-Aufruf mit ‚Satz 2‘ aktiviere klappt es nicht mehr. Ich kann es mir nicht erklären!
Remarke ich allerding die beiden ersten loger-Aufrufe nach ihren Aufruf und demarke dann den mit dem Satz ‚Satz 2‘ , DANN funktioniert es prima.
Wer kann mir bitte schön dieses Verhalten erklären?
Danke
Marc
<?php $GLOBALS["info"]["TEXT"]= "-------START EINLESEN-------\nStartzeit : ".<br /> date("d.m.Y@H:i:s",strtotime("now")).
"\nMA : %ma%".
"\nLAUF: %lauf%".
"\n-------------------------------------------------------";
$GLOBALS["info"]["LAUF"]=1;
$GLOBALS["info"]["MA"]="TEST\_MA";
logger("","w");
logger("\nSatz 1");
//logger("\nSatz 1");
function logger($text,$type="a",$filename="../texte/logger.log")
{
if($type==="a" && strpos($filename,"logger.log")){
$handle=fopen($filename,"rb");
$ftxt = fread ($handle, filesize ($filename));
preg\_match('/(.\*#BOF)(.\*#EOF)/s',$ftxt,$res);
//print\_r($res);
$t=$GLOBALS["info"]["TEXT"];
$t=preg\_replace("/%ma%/",$GLOBALS["info"]["MA"],$t);
$t=preg\_replace("/%lauf%/",$GLOBALS["info"]["LAUF"],$t);
$text=$t."\n#BOF".$text.$res[2];
$type="w";
// echo $text;
}
if($text==="" && strpos($filename,"logger.log"))
$text=$GLOBALS["info"]["TEXT"]."\n#BOF\n#EOF";
$d=fopen($filename,$type);
fputs($d,$text);
fclose($d);
}
?\>