php中不区分大小写的突出显示
Posted
技术标签:
【中文标题】php中不区分大小写的突出显示【英文标题】:case insensitive highlighting in php 【发布时间】:2011-02-14 14:19:21 【问题描述】:我正在使用这个函数来突出 mysql 查询的结果:
function highlightWords($string, $word)
$string = str_replace($word, "<span class='highlight'>".$word."</span>", $string);
/*** return the highlighted string ***/
return $string;
....
$cQuote = highlightWords(htmlspecialchars($row['cQuotes']), $search_result);
问题是,如果我输入“good”,它只会以小写的“g”ood 而不是“Good”显示我的搜索结果。我该如何纠正这个问题?
【问题讨论】:
【参考方案1】:请改用str_ireplace()
。
编辑:这是保留原始大小写的正则表达式版本:
$string = preg_replace("/".preg_quote($word, "/")."/i", "<span class='highlight'>$0</span>", $string);
【讨论】:
这行得通,但它的作用是将大写的“G”更改为小写的“g”。还有其他想法吗? 您应该使用preg_quote($word, '/')
而不仅仅是$word
。
@FrancisMV123 第一个参数的匹配
非常感谢!在使用正则表达式头痛一小时后得到帮助以上是关于php中不区分大小写的突出显示的主要内容,如果未能解决你的问题,请参考以下文章
Spring数据JPAexistsByField在MySQL中不区分大小写,如何使其区分大小写