Fehler (Regulärer Ausdruck)

mille

Erfahrenes Mitglied
Hey!

Ich will einen String (enthalten ist eine HTML Datei) per preg_replace nach dem Ende (</body></html>) suchen lassen und dieses mit einem neuem Ende zu versehen!
Soweit, so gut! ich habe folgende Code Zeile, bei der $datei eine als Referenz übergebene Variable in einer Unterfunktion ist.

PHP:
$datei = preg_replace("/(<\/body>)(.*?)(<\/html>)$/i","neues Ende</body></html>",$datei);

Zu erwähnen ist noch, das ich mit dem Pattern auch nach Enden suche, bei denen zwischen </body> und </html> noch ein oder 2 freizeilen sind.

Das ich das Problem auch mit str_replace lösen kann weiss ich, mich interessiert dennoch die Variante mit regulären Ausdrücken!

Mfg Basti

PS: das Leerzeichen nach body> } ist wegzudenken, das wird vom skript her hinzugefügt
 
Code:
$datei = preg_replace("/(<\/body>)(.*?)(<\/html>)$/si","neues Ende</body></html>",$datei);
das "s" setzt die Option PCRE_DOTALL.....mit dieser erfüllt der Punkt auch Zeichen für den Zeilenumbruch(was sonst nicht der Fall ist)....
 
Zuletzt bearbeitet:
Zurück