Text zwischen #1anfang und #1ende mit PHP aus einer Datei löschen ?
-
Hallo,
ich möchte mit PHP in eine Datei (datei.txt) einen Text ->AM ENDE<- anfügen !
Das problem ist dass ich den eingefügten Text auch wieder aus der Datei löschen möchte -- er dann aber z.B. wenn ich schon öfter Texte eingefügt habe der Text nichmehr am Ende steht sondern ingendwo !
Hat jemand eine Idee wie ich z.B. den Text der sich zwischen:
"#1anfang"
und
"#1ende"
befindet löschen kann ?Also kann man nach z.B. dem Schlüsselwort "#1anfang" und "#1ende" suchen und dann das und den Text dazwischen löschen ?
--
.. würde mich über jede Antwort freuen,
Grüße Frederik
-
Hallo.
- Datei öffnen und Inhalt komplett einlesen
- Möglichkeit 1: Den Anfang (#anfang1) und das Ende (#ende1) mit strpos() suchen, Positionen merken und den dazwischenliegenden Teil mit substr_replace() durch ein "" ersetzen -> langsam
- Möglichkeit 2: Gibt es den Anfang und das Ende nur einmal, kannst du das auch über preg_replace machen:$str = preg_replace("#anfang(.*?)ende#si","anfang\nende",$str);
-> schneller, ersetzt aber alle Vorkommen von Anfang und Ende.
Eine gute Einführung in die Welt der regulären Ausrücke gibt es hier.
- dem Dateinhalt nun noch bei Bedarf Strings anhängen:
$str .= "\nNeue Zeile1\nNeue Zeile2";
- Datei wieder speichern. - Fertig.
Bye.
-
Falls du nur etwas anhängen willst: bei fopen a(+) angeben oder fseek mit SEEK_END und dann einfach mit fwrite reinschreiben