0

我的 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";`

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

4

1 回答 1

1

使用正则表达式解析 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;
于 2012-09-04T05:56:58.953 回答