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];
}

10-02 08:17
查看更多