在具有特定类的div中使用preg_match_all锚文本

时间:2018-06-28 08:54:20

标签: php html

我有以下div:

<div class="myclass"><strong><a rel="nofollow noopener" href="some link">dynamic content</a></strong></div>

我只想获得dynamic content锚文本。

到目前为止,我已经尝试使用preg_match_all

"'<div class=\"myclass\">(.*?)</div>'si"

返回所有div内容。

我尝试将其与:

"|<a.*(?=href=\"([^\"]*)\")[^>]*>([^<]*)</a>|i"

返回锚文本,但我无法使其工作

有人可以帮忙吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用DOMDocument代替preg_match_all

$html = '<div class="myclass"><strong><a rel="nofollow noopener" href="some link">dynamic content</a></strong></div>';

$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

$query = './/div[@class="myclass"]/strong/a';
$nodes = $xpath->query($query);

echo $nodes[0]->textContent;