PHP preg_replace

Dr.Kurt

Cadet 4th Year
Registriert
März 2009
Beiträge
91
huhu,

hab hier ein kleines Problem bezüglich regular expression.

ich möchte alles, was zwischen <body> und </body> steht löschen.
soweit ich weiß, geht das per preg_replace, dass ungefair so aussehn sollte

$newbody= preg_replace( '!\<body\>.*\</body>!Us', '<body></body>', $file);

das haut anscheinend nicht hin und löscht mir immer das gesamte Dokument.
Leider hab ich keine Ahnung von regex und würde mich sehr freuen, wenn mir jemand
diese Zeile Code zukommen lassen könnte.

Mfg
DrKurt
 
Zuletzt bearbeitet:
Moin

PHP:
// Als Delimiter wird hier das @-Zeichen benutzt
$regex_pattern = '@<body\>(.*?)\</body\>@is';

$newbody = preg_replace($regex_pattern, '<body></body>', $file);

Dein Ausdruck funktioniert doch auch?

Oder habe ich Dich jetzt falsch verstanden?

Anwendungsbeispiel:

PHP:
$file = '<html><head><title>Test</title></head><body><p>Test</p><a href="mailto:info@test.de">e-mail</a></body></html>';

// Als Delimiter wird hier das @-Zeichen benutzt
$regex_pattern = '@<body\>(.*?)\</body\>@is';

$newbody = preg_replace($regex_pattern, '<body></body>', $file);

print $newbody;

Ausgabe:
Code:
<html><head><title>Test</title></head><body></body></html>
 
Zuletzt bearbeitet: (Code kommentiert)
so, grad nach Hause gekommen und gleich ausprobiert.
Funktioniert einwandfrei!

Danke dir.
 
Zurück
Oben