Hallo,
- Erstelle eine neue Datei. Füge den neuen Datensatz ein. Hänge die alte Datei hinten an. Lösche die alte Datei. Benenne die neue Datei um, so dass sie den Namen der alten Datei erhält.
IMHO zuviele Datei-Aktionen.
Aber natuerlich eine brauchbare Moeglichkeit.
Die auch von der dclp-FAQ empfohlen wird:
http://www.dclp-faq.de/q/q-datei-einfuegen.html
- Lese die komplette Datei in ein Array ein (benötigt bei vielen Datensätzen viel Speicher).
Warum nicht gleich in einen String?
file_get_contents() ist IMHO dafuer praedestiniert.
Damit hat man nur zwei Datei-Aktionen:
// Definieren der neuen Zeile und des Dateinamens:
$neuezeile="01.01.2001|name@host.de|daten1|daten2|daten3\n";
$dateiname="daten.dat";
// 1. Einlesen des bisherigen Inhalts in einen String:
$alterinhalt=file_get_contents($dateiname);
// 2. Schreiben der neuen Zeile und des bisherigen Inhalts in die Datei.
$handle=fopen($dateiname, "w");
fwrite($handle, $neuezeile.$alterinhalt));
fclose($handle);
Natuerlich muss man das ganze noch mit einer anstaendigen
Fehlerbehandlung "einpacken", siehe auch:
http://www.php.net/manual/de/function.fopen.php
http://www.php.net/manual/de/function.fwrite.php
http://www.php.net/manual/de/function.file-get-contents.php
- Empfehlenswerter ist dagegen das Verwenden einer Datenbank :-)
Es ist vielleicht bequemer.
Ob es empfehlenswerter, zweckmaessiger, schneller, ... ist,
kann man IMHO nur sagen, wenn man mehr Details kennt,
z.B. Anzahl der Datensaetze, Haeufigkeit der Mutationen,
Zweck der ganzen Sache... ;-)
mfg, Thomas