PHP - Text ab bestimmter Zeile löschen
Hallo,
ich habe eine Textdatei, die immer neu erstellt wird, ähnlich aussieht, aber unterschiedlich lang.
Auf den Inhalt der Datei hab ich keinen Einfluss.
Jedoch möchte ich die Datei ab einer gewissen Zeile, mit einem festen Text abschneiden und speichern.
Einlesen etc klappt alles einwandfrei.
Also wenn der Text in Zeile 15 vorkommt, dann alles ab einschließlich Zeile 15 löschen.
Das ganze in PHP.
Gibt es eine Funktion, die das macht?
Oder kann mir jemand helfen?
ich habe eine Textdatei, die immer neu erstellt wird, ähnlich aussieht, aber unterschiedlich lang.
Auf den Inhalt der Datei hab ich keinen Einfluss.
Jedoch möchte ich die Datei ab einer gewissen Zeile, mit einem festen Text abschneiden und speichern.
Einlesen etc klappt alles einwandfrei.
Also wenn der Text in Zeile 15 vorkommt, dann alles ab einschließlich Zeile 15 löschen.
Das ganze in PHP.
Gibt es eine Funktion, die das macht?
Oder kann mir jemand helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 284095
Url: https://administrator.de/contentid/284095
Ausgedruckt am: 14.11.2024 um 01:11 Uhr
4 Kommentare
Neuester Kommentar
Gruß grexit
expects parameter 2 to be string, array given in"
Dann hast du den Text nicht als String sondern Array eingelesen, sagt ja schon die Fehlermeldung ...Beispiel wie es problemlos läuft ...
Mit preg_split
// Eingabepfad
$fileIN = "testdatei.txt";
// Ausgabepfad
$fileOUT = "testdatei2.txt";
// Text der Datei einlesen
$text = file_get_contents($fileIN);
// Text trennen (Ausgabe ist ein Array der Teile ohne den Trenner)
$arrParts = preg_split("/xxxx/i",$text);
// ArrayIndex 0 (also alles was vor den Trenner steht) in die Ausgabedatei schreiben
file_put_contents($fileOUT,$arrParts);
oder mit preg_replace
$fileIN = "testdatei.txt";
$fileOUT = "testdatei2.txt";
$text = file_get_contents($fileIN);
$text = preg_replace('/(.*?)xxxx.*/si',"$1",$text);
if ($text !== NULL){
file_put_contents($fileOUT,$text);
}