---
title: "preg_match - Hämta innehåll mellan body-taggar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/182893-preg-match-hämta-innehåll-mellan-body-taggar"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "MickeA.com"
published: "2010-03-21T12:20:59.000Z"
updated: "2010-03-21T13:12:33.000Z"
replies: 6
views: 709
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/182893-preg-match-hämta-innehåll-mellan-body-taggar"
---

# preg_match - Hämta innehåll mellan body-taggar

## #1 — MickeA.com, 2010-03-21T12:20Z

Hej

Jag försöker med hjälp av preg_match() läsa ur allt mellan \<body ..\> och \</body\> från en htmldokument.

Har Googlat och hittat en del, men alla jag provat inkluderar själva bodytaggarna i träffen.

Såhär har jag gjort:

```php
preg_match("/<body(.*)>(.*)<\/body>/s", $template, $foo);
print_r($foo);
```

Hur ska mönstret ovan se ut för att bodytaggarna ska **exkluderas**?

Tack!

Permalänk: https://www.webforum.nu/p/182893

## #2 — nitro2k01, 2010-03-21T12:29Z

```php
preg_match("/<body(.*)>(.*)<\/body>/s", $template, $foo);
echo $foo[2];
```

...kanske?

Permalänk: https://www.webforum.nu/p/2231409

## #3 — MickeA.com, 2010-03-21T12:34Z

Nepp, print_r() skriver ju ut hela array'en och den får bara två värden, där 0 innehåller \<body ..\>\</body\> och 1 hela dokumentet.

Permalänk: https://www.webforum.nu/p/2231410

## #4 — nitro2k01, 2010-03-21T13:04Z

```php
<?PHP
$template = '<body backgrund="css-sucks.bmp"><strong>mmlrmlrmr</strong></body>';
preg_match("/<body([^>]*)>(.*)<\/body>/s", $template, $foo);
print_r($foo);
```

Behövdes en liten ändring, men koden ovan ger mig:

```
Array
(
    [0] => <body backgrund="css-sucks.bmp"><strong>mmlrmlrmr</strong></body>
    [1] =>  backgrund="css-sucks.bmp"
    [2] => <strong>mmlrmlrmr</strong>
)
```

Permalänk: https://www.webforum.nu/p/2231412

## #5 — MickeA.com, 2010-03-21T13:05Z

Vilken timing, hittade precis det här på ett annat forum som för exakt det jag vill!

```php
if (preg_match('~<body[^>]*>(.*?)</body>~si', $text, $body))
{
    echo $body[1];
}
```

Tack ändå!

Permalänk: https://www.webforum.nu/p/2231413

## #6 — nitro2k01, 2010-03-21T13:11Z

Samam idé som min ju. :)
Bara att den använder \~ som avslutningstecken (smart, då behöver man inte escapea / i \</body\>) och inkluderar i, som gör att uttrycket matchar både stora och små bokstäver.

Permalänk: https://www.webforum.nu/p/2231414

## #7 — MickeA.com, 2010-03-21T13:12Z

Japp!

Permalänk: https://www.webforum.nu/p/2231415

---

Tråden på webben: https://www.webforum.nu/amne/php/182893-preg-match-hämta-innehåll-mellan-body-taggar
