Inhalt zwischen body tags auslesen
Nupsi
- php
Hi,
ich habe mir folgenden regex zusammen gebaut, um die inhalte zwischen zwei body tags zu lesen:
preg_match('|<body(.*)>(.*)</body>|s', $inhalt, $ergebnisse);
print_r($ergebnisse);
Der Code hat soweit hin. Leider enthält das Ergebnis die body Tags. Ich möchte das in dem Ergebnis die Body Tags nicht drinnen sind.
Weiterhin bin ich der Meinung das der Regex so nicht besonders schön ist mit dem ersten (.*) leider weiß ich nicht wie man es besser lösen kann.
Wäre cool wenn jemand helfen könnten den regex zu verbessern.
Nupsi
Lieber Nupsi,
ich mache das so, da mein body-Tag keine Attributwerte mit möglichen ">"-Zeichen enthält:
$body = preg_replace('~(?is).*<body[^>]*>(.*)</body>.*~', '\\1', $code);
Liebe Grüße,
Felix Riesterer.
Hi,
preg_match('|<body(.*)>(.*)</body>|s', $inhalt, $ergebnisse);
Der Code hat soweit hin. Leider enthält das Ergebnis die body Tags.
Du guckst falsch. Der Eintrag mit dem Index 0 enthält tatsächlich den gesamten Match inklusive "<body" und "</body>", der mit dem Index 1 alles zwischen "<body" und "></body>", der mit dem Index 2 dürfte leer sein.
Weiterhin bin ich der Meinung das der Regex so nicht besonders schön ist mit dem ersten (.*) leider weiß ich nicht wie man es besser lösen kann.
Den Begriff "Greediness" schon mal gehört? Desweiteren möchtest Du Dir sicher die Details der Subpattern anlesen.
Cheatah