Hi Tom,
Es scheint mir, als ob der das neue einfach hintendran gesetzt hat, und dann eben wie gewünscht abgeschnitten hat. Aber warum zum Teufel setzt der das hintendran?
Weil das $_data[] = $_satz; den Satz immer hinten an das Datenarray anhängt.
Und was muss ich dann jetzt für einen Code nehmen? Ich will nichts anderes, als dem Array, dem Hauptarray ein weiteres Unterarray dazuzufügen.
Das war es, wo ich nicht weiterwusste. Vielleicht haben wir uns da auch mißverstanden.
Jetzt habe ich aber eine funktionierende Lösung gefunden:
$fp = fopen("aktuell.txt","a+");
flock($fp,LOCK_EX);
fseek($fp,0,SEEK_SET);
$string_packed = fread($fp,filesize("aktuell.txt"));
$_data = unserialize($string_packed);
$_data[] = $daten;
$string_packed_neu = serialize($_data);
ftruncate($fp,0);
fwrite($fp,$string_packed_neu,strlen($string_packed_neu));
fclose($fp);
Meine Lösung ist diese: Ich habe einfach bevor ich die daten in die Textdatei reingeschrieben habe (Und da war immer das Problem: Der hat in der Textdatei die alten Daten nicht überschrieben und durch das anschließende ftruncate waren dann von den neuen Daten nur die Hälfte da) die Länge der alten Textdatei auf 0 Bytes gesetzt habe.
Somit werden die neuen Daten ganz einfach wieder an den Anfang geschrieben.
Trotzdem würde es mich jetzt noch interessieren, warum deine Methode bei mir nicht geklappt hat. Habe ich dich mißverstanden? Wo war der Fehler? Oder hast du dich falsch ausgedrück? Oder kann es sein, dass etwas bei mir lokal nicht so klappt, wie man will?
MfG, Dennis.