Можно ли как-то получить html до определенного тега?

В PHP существует несколько подходов, с помощью которых можно получить HTML-код до определенного тега. Рассмотрим несколько возможных способов.

1. С использованием регулярных выражений:

function getHtmlBeforeTag($html, $tag) {
    $pattern = '/(.*?<' . preg_quote($tag) . '.*?>)/s';
    preg_match($pattern, $html, $matches);
    return $matches[1];
}

$html = "<html><head><title>Заголовок страницы</title></head><body><p>Пример текста.</p><p>Другой параграф.</p></body></html>";
$tag = 'body';
$result = getHtmlBeforeTag($html, $tag);
echo $result;

В данном примере мы задаем HTML-код в переменной $html и тег, до которого нам нужно получить код - в переменной $tag. Функция getHtmlBeforeTag использует регулярное выражение, чтобы найти участок HTML-кода до тега и возвращает найденный результат. В результате выполнения кода, на экран будет выведено:

<html><head><title>Заголовок страницы</title></head>

2. С использованием библиотеки DOMDocument:

function getHtmlBeforeTag($html, $tag) {
    $dom = new DOMDocument;
    $dom->loadHTML($html);
    $bodyTag = $dom->getElementsByTagName($tag)->item(0);
    $htmlBeforeTag = $dom->saveHTML($bodyTag);
    return $htmlBeforeTag;
}

$html = "<html><head><title>Заголовок страницы</title></head><body><p>Пример текста.</p><p>Другой параграф.</p></body></html>";
$tag = 'body';
$result = getHtmlBeforeTag($html, $tag);
echo $result;

Этот пример использует библиотеку DOMDocument, которая предоставляет возможности для работы с HTML-кодом. Функция getHtmlBeforeTag принимает HTML-код и тег, до которого нужно получить код. Затем мы создаем объект DOMDocument, загружаем в него HTML-код, используя метод loadHTML, и находим элемент с помощью метода getElementsByTagName. Затем с помощью метода saveHTML мы получаем HTML-код до указанного тега. В результате выполнения кода, на экран будет выведено:

<html><head><title>Заголовок страницы</title></head><body><p>Пример текста.</p><p>Другой параграф.</p></body></html>

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