Tom: Löschen einer Zeile aus Datei

Beitrag lesen

Hello,

Was Deinen Postings noch fehlt, sind die Fehlermeldungen des Systems. Die musst Du bitte demnächst auch mitposten, ok?
Und wenn ich keine hatte?

Gut, fangen wir hier hinten an.
Zur Entwicklung von PHP-Applikationen immer alle Fehlermeldungen einschalten:

in der php.ini display_errors = ON und track_errors = ON setzen und im Script gleich als erstes die Zeile error_reporting(E_ALL); einfügen. Dann solltest Du Fehlermeldungen sehen.
Darüberhinaus empfiehlt es sich manchmal noch, die Konstante DEBUG im Script einzuführen und dann

if (DEBUG)
{
  $meinErrorText = ".....";
  error_log (__LINE__.": $php_errormsg\n$meinErrorText"),
             3, "/var/tmp/php-errors.log");
}

Das würde dann nämlich auch funktionieren, wenn man display_errors mal absichtlich wieder auf off stellt, weil man header() Statements testen muss.

Lies Dir mal aufmerksam http://www.php.net/manual/de/ref.errorfunc.php durch. und nutze die Möglichkeiten.

Zweitens:

Du hast immer noch keinen sauberen Aufbau in Deinem Script. Trenne die Aufgaben streng voneinander. Machst Du eigentlich vorher keine Planung für ein Programm? Da gibt es sowas wie Programmablaufplan (PAP) oder Nassi-Shniderman-Diagramm oder Metachart-Planung mit Pseudocode (MP/P). Letzteres gefällt mir bei verteilten Anwendungen (Client-Server) am besten.

Wieviele Einträge wird Deine Datei bekommen?
Wenn sie zusammen nicht mehr als 1-2MB ergeben, dann kann man die Datei immer komplett einlesen. Das sollte man in einem Stück mit fread() tun, damit man das System nicht ausbremst - also bitte nicht in einer Schleife zeilenweise lesen!

Dann denk mal über das Format Deiner Daten im Hauptspeicher nach. Ein assoziatives Array erscheint mir hier doch am geeignetsten. Du hast einen Schlüsselwert, nach dem du suchst und kannst das Arrayelement daher in Nullkomanix finden, löschen, hinzufügen, verändern.

Dieses Array kannst Du dann komplett in deiner Datei abspeichern. Wie die Funktion aussehen muss dafür habe ich Dir schon gepostet. Du musst den Pseudocode nur noch in PHP gießen.

Nochmal zusammengefasst die Schritte, die du machen solltest:
1. Fehlerbehandlung und Logging einbauen und aktivieren
2. Programmplanung mit Papier, Bleistift und Radiergummi
3. Planung der Datenmodelle für RAM und DISK
4. Erstellung der Funktionen für
   - Holen, suchen, anzeigen
   - Holen, ändern, wegschreiben    der Daten
5. Zsammenbau der Funktionen nach Plan
6. Testen und Debugging
---------------------------------
7. Spielen wie die Wildsau ;-))

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen