从Div id中排除内容


Exclude Content From A Div id

我的PHP脚本可以从div id中提取内容,但如何过滤该提取数据并排除其具有此div id的部分内容<div id="navbar" class="n">我已经尝试过使用此代码,但它不起作用

$regex = '#'<div id="navbar"'>(.+?)'<'/div'>#s';
preg_match($regex, $displaybody, $matches);
$match = $matches[0];
echo "$match";`

为了获取内容,我正在使用HTMLDOMParser。

使用regexpes解析html通常是个坏主意。您可以选择DOM很好的节点:

$input = '<html> <body> some content <span class="a">b</span> <div id="navbar" class="n">find me <span class="a">b</span></div> </html>';
$doc = new DOMDocument;
$doc->loadHTML($input);
$navbar = $doc->getElementById('navbar');
$innerhtml = '';
foreach ($navbar->childNodes as $cn) {
    $innerhtml .= $doc->saveHTML($cn);
}
print $innerhtml;