可能的重复:
爬行使用PHP html页面?
最好的方法来解析HTML
我在我的PHP脚本一个字符串变量,包含HTML页面。 我怎么能提取这个字符串DOM元素?
例如,在此字符串'<div class="someclass">text</div>'
,我希望得到变量“文本”。 我怎样才能做到这一点?
可能的重复:
爬行使用PHP html页面?
最好的方法来解析HTML
我在我的PHP脚本一个字符串变量,包含HTML页面。 我怎么能提取这个字符串DOM元素?
例如,在此字符串'<div class="someclass">text</div>'
,我希望得到变量“文本”。 我怎样才能做到这一点?
你需要使用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
。
看看DOMDocument
和DOMXPath
。
$DOM = new DOMDocument();
$DOM->loadHTML($str);
$xpath = new DOMXPath($DOM);
$someclass_elements = $xpath->query('//[@class = "someclass"]');
// ...