PHP:类似搜索的单词突出显示

PHP:类似搜索的单词突出显示,php,replace,word,highlight,Php,Replace,Word,Highlight,我正在为一个报纸应用程序开发一个简单的搜索引擎。当用户键入关键字时,将显示一个结果页面,用颜色突出显示该术语 我目前正在这样做: $title = str_ireplace($term, "<span class='highlight'>$term</span>", $note->Title); 该说明的原始标题为“马尔维纳斯:阿根廷队(而非“马尔维纳斯队”)等 如何在不改变原始单词大小写的情况下突出显示?您应该使用不区分大小写的修饰语。这样,当你替换这个词时,你就是在用它自己替换

我正在为一个报纸应用程序开发一个简单的搜索引擎。当用户键入关键字时,将显示一个结果页面,用颜色突出显示该术语

我目前正在这样做:

$title = str_ireplace($term, "<span class='highlight'>$term</span>", $note->Title);
该说明的原始标题为“马尔维纳斯:阿根廷队(而非“马尔维纳斯队”)等

如何在不改变原始单词大小写的情况下突出显示?

您应该使用不区分大小写的修饰语。这样,当你替换这个词时,你就是在用它自己替换它(保留它的大小写),而不是用搜索中使用的任何大小写替换它

将此方法与
preg\u replace
一起使用将允许您传入一个搜索词数组,并为每个搜索词传递一个通用替换模式。

使用正则表达式:

$term = 'hello';
$str = 'Hello there';
$term_escaped = preg_quote($term);
$out = preg_replace("~$term_escaped~i", '<b>\0</b>', $str);

echo $out;
$term='hello';
$str='你好';
$term\u expaid=preg\u quote($term);
$out=preg\u replace(“~$term\u转义~i”,'\0',$str);
回音$out;
输出:

<b>Hello</b> there
你好
<b>Hello</b> there