如果您尝试从HTML文档中提取某些数据,则不应使用正则表达式。
相反,你应该使用DOM Parser:那些就是为此做的。
在PHP中,您可以使用DOMDocument类及其DOMDocument::loadHTML()方法来加载HTML内容。
然后,您可以使用以下方法:
您甚至可以使用DOMXpath对HTML内容执行XPath查询 - 这样您就可以搜索其中的任何内容。
在你的情况下,我认为像这样的事情应该可以解决问题。
$html = <<
hello
The Value I need
HTML;
然后,将其加载到DOMDocument实例:
$dom = new DOMDocument();
$dom->loadHTML($html);
Instanciate DOMXPath对象,并使用它来查询您的DOM对象:
我的XPath表达式可能比必要的复杂得多......我对这些表达方式并不是很好......
$xpath = new DOMXPath($dom);
$items = $xpath->query('//div[@id="MustBeInThisId"]/div[@class="ValueFromThisClass"]');
最后,使用该查询的结果:
if ($items->length > 0) {
var_dump( trim( $items->item(0)->nodeValue ) );
}
这是你的结果:
string 'The Value I need' (length=16)