Парсинг блоков тегов через регулярки на PHP

Давайте научимся получать целые блоки HTML кода. Пусть, к примеру, у нас есть следующий тег header:

text <header class="header"> <p> text </p> <p> text </p> </header> text

Получим содержимое этого блока:

<?php preg_match('#<header[^>]*>(.+?)</header>#su', $str, $match); ?>

Проверим, что мы поймали правильный текст:

<?php var_dump($match[1]); ?>

Найдите содержимое тега footer:

text <footer id="footer" class="footer"> <p> text </p> <p> text </p> </footer> text

Найдите содержимое тега head и тега body:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>тайтл</title> </head> <body> основное содержимое страницы </body> </html>

Найдите содержимое тега main:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>тайтл</title> </head> <body> <div class="wrapper"> <main class="main"> основное содержимое страницы </main> </div> </body> </html>