我想在HTML文档的正文中突出显示指定的关键字。起初我使用preg_replace来放一个< span>关键字周围,但当然,如果关键字是标记的一部分,如字母“i”(如在< li>中),则会导致问题。所以相反,我使用DOM :: loadHTMLFile(path)来加载文档,然后在每个子元素的值中使用preg_replace。
到目前为止,这么好。我可以回显文档的纯文本,突出显示相应的单词,不受标签的干扰。但是我需要在更改后回复文本包括标签的整个主体,我不知道如何。这是我到目前为止所做的:
if (file_exists('mss/'.$link_title)) {
$descfile = DOMDocument::loadHTMLFile('mss/'.$link_title);
foreach ($descfile->childNodes as $e) {
$desc_output = $e->nodeValue;
$desc_output = preg_replace($to_highlight, "<span class=\"highlight\">$0</span>", $desc_output);
}
echo ???
}
我应该回应什么?
答案 0 :(得分:-1)
如果您将代码更改为:
$e->nodeValue = preg_replace($to_highlight, "<span class=\"highlight\">$0</span>", $e->nodeValue);
您可以使用:
http://php.net/manual/de/domdocument.savehtml.php
输出整个html文档。