我使用php从文件中获取了一个页面源,其输出类似于
<div class="basic">
<div class="math">
<div class="winner">
<div class="under">
<div class="checker">
<strong>check</strong>
</div>
</div>
</div>
</div>
</div>
从这里我需要得到一个特殊的'div',整个div和内容如下,当我输入'under'(类名)时。任何人建议我如何使用PHP
这样做<div class="under">
<div class="checker">
<strong>check</strong>
</div>
</div>
答案 0 :(得分:14)
试试这个:
$html = <<<HTML
<div class="basic">
<div class="math">
<div class="winner">
<div class="under">
<div class="checker">
<strong>check</strong>
</div>
</div>
</div>
</div>
</div>;
HTML;
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$div = $xpath->query('//div[@class="under"]');
$div = $div->item(0);
echo $dom->saveXML($div);
这将输出:
<div class="under">
<div class="checker">
<strong>check</strong>
</div>
</div>
答案 1 :(得分:6)
从任意网页中提取特定div ID内容的功能
以下函数从指定的div中提取内容并返回它。如果找不到具有ID的div,则返回false。
function getHTMLByID($id, $html) {
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$node = $dom->getElementById($id);
if ($node) {
return $dom->saveXML($node);
}
return FALSE;
}
$id
是您尝试提取其内容的<div>
的ID,$html
是您的HTML标记。
用法示例:
$html = file_get_contents('http://www.mysql.com/');
echo getHTMLByID('tagline', $html);
输出:
The world's most popular open source database
答案 2 :(得分:-2)
我不确定你问的是什么,但这可能是它
preg_match_all("<div class='under'>(.*?)</div>", $htmlsource, $output);
$ output现在应该包含该div的内部内容