从Div ID中排除内容

时间:2012-09-04 03:53:57

标签: php

我的PHP脚本可以从div id中获取内容,但是有什么方法可以过滤此获取数据并排除一些具有此div <div id="navbar" class="n">的内容我尝试使用此代码但它无法正常工作

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

要获取内容,我正在使用HTML DOM Parser。

1 个答案:

答案 0 :(得分:1)

使用正则表来解析html通常是bad idea。您可以选择具有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;
相关问题