Php 突出显示文本:如何用所有标记回显HTML DOM元素
我想突出显示HTML文档正文中指定的关键字。起初,我使用preg_replace在关键字周围放置一个,但是如果关键字是标记的一部分,当然会导致问题,比如字母“I”(如Php 突出显示文本:如何用所有标记回显HTML DOM元素,php,dom,html-parsing,Php,Dom,Html Parsing,我想突出显示HTML文档正文中指定的关键字。起初,我使用preg_replace在关键字周围放置一个,但是如果关键字是标记的一部分,当然会导致问题,比如字母“I”(如)。因此,我使用DOM::loadHTMLFile(path)加载文档,然后在每个子级的值中使用preg_replace 到目前为止,一切顺利。我可以用适当的突出显示的单词和标签的干扰来呼应文档的纯文本。但是我需要回显整个正文,包括更改后的标记,我不知道如何回显。以下是我目前掌握的情况: if (file_exists('mss/'
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 ???
}
if(文件存在('mss/'.$link\u title)){
$descfile=DOMDocument::loadHTMLFile('mss/'。$link_title);
foreach($descfile->childNodes作为$e){
$desc_输出=$e->nodeValue;
$desc_output=preg_replace($to_highlight,$0“,$desc_output);
}
回响
}
我应该回显什么?如果您将代码更改为:
$e->nodeValue = preg_replace($to_highlight, "<span class=\"highlight\">$0</span>", $e->nodeValue);
$e->nodeValue=preg\u replace($to\u突出显示,$0,$e->nodeValue);
您可能可以使用:
输出整个html文档。这不起作用,nodeValue
将自然地将
作为X(H)TML实体
和
写入文档,使用saveHTML()
时可以看到。可能的重复