В принципе, вам придется разбирать разметку. PHP поставляется с хорошим анализатором в виде the DOMDocument
class, так что это на самом деле очень просто:
$dom = new DOMDocument;
$dom->loadHTML($htmlString);
Далее, получить все p
теги:
$paragraphs = $dom->getElementsByTagName('p');
Этот метод возвращает DOMNodeList
объект, который реализует Traversable
интерфейс, так что вы можете использовать его как массив DOMNode
экземпляров (DOMElement
в данном случае):
$first = $paragraphs->item(0);//or $paragraphs[0] even
foreach ($paragraphs as $p) {
echo $p->textContent;//echo the inner text
}
Если вы хотите только элементы абзаца, не содержит дочерние элементы, то вы можете легко проверить, что:
foreach ($paragraphs as $p) {
if (!$p->hasChildNodes()) {
echo $p->textContent; // or $p->nodeValue
}
}
близкородственного ответ еще с некоторыми ссылками/информация: How to split an HTML string into chunks in PHP?
Можете ли вы дать больше информации о том, что вы хотите сделать? – Blobonat