Hallo Leute!
Ich habe auf meiner Homepage einen Chat (ohne MySQL), der die Einträge von usern in eine text-datei einträgt. Dafür sollen die überflüssigen Zeilen in der Datei entfernt werden, da meine Chatbox (wie Kommandozeile aussehend) eine Konstante Anzahl von Zeilen haben muss. Meine bisheriger Code:
Diese Funktion wird immer aufgerufen, wenn eine Zeile ausgegeben werden soll.
Das hat aber den Nachteil das nur eine Zeile gelöscht wird. Schmuggelt sich ab und zu auch nur eine Zeile zuviel in die Datei, krieg ich das mit diesem Script nicht mehr weg.
Hat jemand eine Lösung oder ein script, welches die Datei unabhängig von der anzahl der überflüssigen Zeilen immer auf die richtige Form formatiert?
Schonmal Danke im Voraus.
Nemo
Ich habe auf meiner Homepage einen Chat (ohne MySQL), der die Einträge von usern in eine text-datei einträgt. Dafür sollen die überflüssigen Zeilen in der Datei entfernt werden, da meine Chatbox (wie Kommandozeile aussehend) eine Konstante Anzahl von Zeilen haben muss. Meine bisheriger Code:
PHP Code:
function out($c) {
$fn = "chat.txt";
$maxlines = 20;
$handle = fopen ($fn, 'r');
$chattext = fread($handle, filesize($fn)); fclose($handle);
$arr1 = explode("\n", $chattext);
if (count($arr1) > $maxlines) {
/* Pruning */
$arr1 = array_reverse($arr1);
for ($i=0; $i<$maxlines; $i++) { $arr2[$i] = $arr1[$i]; }
$arr2 = array_reverse($arr2);
} else {
$arr2 = $arr1;
}
$chattext = implode("\n", $arr2);
$out = $chattext.$c."<br>\n";
$handle = fopen ($fn, 'w'); fwrite ($handle, $out); fclose($handle);
}
Das hat aber den Nachteil das nur eine Zeile gelöscht wird. Schmuggelt sich ab und zu auch nur eine Zeile zuviel in die Datei, krieg ich das mit diesem Script nicht mehr weg.
Hat jemand eine Lösung oder ein script, welches die Datei unabhängig von der anzahl der überflüssigen Zeilen immer auf die richtige Form formatiert?
Schonmal Danke im Voraus.
Nemo
Comment