TinTin Geschrieben 16. September 2002 Geschrieben 16. September 2002 hi, will ein kleines script für eine log datei schreiben. format: Zahl:IP:Host das untenstehende funktioniert auch so weit. ich hab nur das problem, dass wenn der alte eintrag länger ist als der neue immernoch ein rest des alten eintrags zu sehen ist. alter eintrag: 1:1.2.3.4:alter.host neuer eintrag: 2:6.7.8.9:neu.host ergebnis: 2:6.7.8.9:neu.hostst der neue eintrag soll die alte zeile aber komplett löschen. was kann ich tun??? cu TinTin <? $path = "./log/"; $file = "test.log"; if (file_exists($path.$file)) { $logCount = fopen($path.$file, "r+"); if ($logCount) { $readLog = fgets($logCount,1000); $li = strstr($readLog, ":"); if ($li) { list ($isCount, $lastIp, $lastHost) = split (':', $readLog); ftruncate ($logCount, ftell($logCount)); $newCount = ($isCount+1); $newIp = $REMOTE_ADDR; $newHost = gethostbyaddr($senderIp); $newEntry = $newCount.":".$newIp.":".$newHost; } // dateizeiger zurücksetzen rewind($logCount); // rausschreiben flock($logCount,2); fwrite($logCount, $newEntry); flock($logCount,3); // dateizeiger schließen fclose($logCount); exit; } else { echo "2. Datei wurde nicht gefunden ".$file; exit(); } print $newEntry; ?>[/PHP]
root@localhost Geschrieben 19. September 2002 Geschrieben 19. September 2002 ich würde die datei komplett einlesen (array file ($filename) ) dann den array nach dem alten eintrag durchsuchen und diesen dann z.B. mit preg_replace mit dem neuen ersetzen dann haste ein array mit der aktualisierten logdatei und diesen schreibst dann einfach auf die datei
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden