найти текст между тегами <тег>текст</тег>

php регулярные выражения теги

<?php
$text="<html><head><title>Название страницы</title></head><body><p id=\"keks\">Текст <p>в</p> абзаце</p><p>текст без абзаца</p></body></html>";
$patern="|<p id=\"keks\">(.*)</p>|Uis";
if(preg_match($patern, $text, $matches)) echo '<div>',$matches[1],'</div>';
else echo "Ничего не найдено";
?>

выдает следующее:
---------------
Текст

в
--------------

а мне нужно чтобы выражение искало текст между началом и концом тега:
Т.е. должно получиться вот так:
Текст <p>в</p> абзаце
Ответы:
У тебя вложенный <p>, что уже нехорошо. Но если тебе все-таки надо разбирать такие вот именно извращения, тут есть два варианта:
1. Рекурсивные маски в preg_match - но ты должен хорошо владеть регекспами, чего пока не наблюдается.
2. Загрузить HTML в DOM и использовать XPath для поиска нужной ветки.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.