An den Anfang statt an das Ende einer .txt schreiben

KomUleR

Mitglied
Huhu :)

Hier erstmal der PHP Code:
PHP:
<?
$chat_file_ok = "msg.txt";
$chat_lenght = 7;
$max_single_msg_lenght = 512;
$max_file_size = 9999999999999999999999999999999999;
$file_size= filesize($chat_file_ok);
if ($file_size > $max_file_size) {
$lines = file($chat_file_ok);
$a = count($lines);
$u = $a - $chat_lenght;
for($i = $a; $i >= $u ;$i--){
        $msg_old =  $lines[$i] . $msg_old;
    }
$deleted = unlink($chat_file_ok);
$fp = fopen($chat_file_ok, "a+");
$fw = fwrite($fp, $msg_old);
fclose($fp);
}
$msg = str_replace ("\n"," ", $message);
$msg = str_replace ("\n"," ", $message);
$msg = str_replace ("<", " ", $msg);
$msg = str_replace (">", " ", $msg);
$msg = stripslashes ($msg);
if ($msg != ""){
$fp = fopen($chat_file_ok, "a+");
$eintrag="<b>$was</b> von $person: $msg\n";
$fw = fwrite($fp, $eintrag);
fclose($fp);
}
$lines = file($chat_file_ok);
$a = count($lines);
$u = $a - $chat_lenght;
for($i = $a; $i >= $u ;$i--){
        
    }
?>


So, nun möchte ich die variable $eintrag aber an den Anfang anstatt ans Ende der msg.txt schreiben, wie krieg ich das hin?
 
Na wo haste den Code her?
php.net/fopen da steht was du noch so als "flag" angeben kannst...
 
Den gesamten Inhalt der Datei einlesen, den String vorne dran hängen, und wieder in das File schreiben. Ist aber äußerst performancelastig, besonders, wenn das File mal etwas größer wird, werden da Schwierigkeiten auf dich zukommen.
 
Den Code hab ich von einer "Opensource Shoutbox" :D

Danke für die Hilfe! Hab jetzt was ich brauche :)


EDIT:
Habe jetzt überall im fopen den flag r+ gesetzt, nun löscht er aber die Datei bevor er was rein schreibt?
 
Zuletzt bearbeitet:
Hm sorry mein Fehler es nützt nix r+ zu machen weil er den Pointer dann zwar auf die erste Stelle setzt, aber dann auch anfängt zu schreiben bzw. überschreiben.
 
Hallöchen,

geht das nicht mit "w+"? Habs nicht ausprobiert, aber laut Erklärung wird der Pointer an den Anfang der Datei positioniert.

mfg
 
Zurück