Как я могу захватить все содержимое внутри тега `` с помощью регулярного выражения?


Как я могу захватить все содержимое внутри тега <body> с помощью регулярного выражения?

Например,

<html><body><p><a href="#">xx</a></p>

<p><a href="#">xx</a></p></body></html> 

Я хочу вернуть только это,

<p><a href="#">xx</a></p>

<p><a href="#">xx</a></p>

Или какие-нибудь другие лучшие идеи? может быть, DOM, но я должен использовать saveHTML();, тогда он вернет doctype и body тег...

Очиститель HTML - это боль в использовании, поэтому я решаю не использовать его. Я подумал, что регулярное выражение может быть следующим лучшим вариантом для моей катастрофы.

Author: Community, 2011-08-01

2 answers

preg_match("/<body[^>]*>(.*?)<\/body>/is", $html, $matches);

$matches[1] будет содержимым тега тела

 21
Author: Flambino, 2011-07-31 20:55:12
preg_match("~<body.*?>(.*?)<\/body>~is", $html, $match);
print_r($match);
 1
Author: genesis, 2011-07-31 20:52:36