Hello,
die datei lese ich nun mittels
$lines = file ($filename)
ein, was auch funktioniert... also in $lines[0] steht die erste zeile usw...
Und schon sind wir bei der Frage, warum denn die Funktion file() benutzt wird, wo doch ggf. die Funktion fgetcsv() in einer Schleife viel besser geeignet wäre?
Das hat mehrere Gründe:
file() ist keine multiuserfeste Funktion, weil sie über Namen arbeitet und die Sperrung der Datei nur solange geschieht, wie der Dateistream gelesen wird.
Siehe: http://aktuell.de.selfhtml.org/artikel/programmiertechnik/dateisperren/
Das bedeutet also, dass Dein Konzept doppelt falsch ist.
Außerdem liest file() die vorhandene Datei vollständig in den Speicher ein und zerteilt sie dabei in ein Array aus "Zeilen". Sowas kostet enorm viel Platz. Du wirst also bei größeren Dateien dabei an die Grenze des verfügbaren Speichers stoßen.
Besser wäre es,
- die alte Datei zu öffnen und gegen Veränderung von Anderen zu sperren
- die alte Datei zeilenweise einzulesen und auch sofort wieder wegzuschreiben in eine neue Datei
- die zu löschende Zeile einfach zu "unterschlagen" beim Wegschreiben in die neue Datei
- die alte Datei zu löschen
- die neue Datei umzubenennen
Das hat Dir im Prinzip Shadowcrow schon grob beschrieben
https://forum.selfhtml.org/?t=201355&m=1358210
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg