Veröffentlicht 16. September 200222 j 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]
19. September 200222 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.