div是这样的
<div style="width:90%;margin:0 auto;color:#Black;" id="content">
this is text, severaltags
</div>
我应该如何在php中使用dom获取div的内容(包括标签)?
最佳答案
假设您使用的是PHP5,则可以使用DOMDocument
-请注意,这并不提供检索元素内部html的简单方法。您可以执行以下操作:
function DOMinnerHTML($element)
{
$innerHTML = "";
$children = $element->childNodes;
foreach ($children as $child)
{
$tmp_dom = new DOMDocument();
$tmp_dom->appendChild($tmp_dom->importNode($child, true));
$innerHTML.=trim($tmp_dom->saveHTML());
}
return $innerHTML;
}
$dom = new DOMDocument();
$dom->loadHTML($html);
$items = $dom->getElementsByTagName('div');
if ($items->length)
{
$innerHTML = DOMinnerHTML($items->item(0));
}
echo $innerHTML;
对于这个简单的事情,尽管我通常不建议这样做,但我会使用regex:
preg_match('|<div[^>]+>(.*?)</div>|is', $html, $match);
if ($match)
{
echo 'html is: ' . $match[1][0];
}