Ответ 1
Вам нужно использовать класс DOMDocument
и, более конкретно, его loadHTML
, чтобы загрузить вашу HTML-строку в объект DOM.
Например:
$string = <<<HTML
<p>test</p>
<div class="someclass">text</div>
<p>another</p>
HTML;
$dom = new DOMDocument();
$dom->loadHTML($string);
После этого вы сможете манипулировать DOM, используя, например, класс DOMXPath
для выполнения XPath запросы на него.
Например, в вашем случае вы можете использовать что-то на основе этой части кода:
$xpath = new DOMXpath($dom);
$result = $xpath->query('//div[@class="someclass"]');
if ($result->length > 0) {
var_dump($result->item(0)->nodeValue);
}
Вот, вот, вы получите следующий вывод:
string 'text' (length=4)
В качестве альтернативы вместо DOMDocument
вы также можете использовать simplexml_load_string
и SimpleXMLElement::xpath
- но для сложных манипуляций я обычно предпочитаю использовать DOMDocument
.