替换函数的问题


An issue with replace function

我正在为我的数据库中的游戏标题做搜索引擎,我有一些问题。

首先是DB:

ID   TITLE
1     aaB
2     abc
3     ABC
4     AbdedABc
5     deff

接下来,我要做这个查询:

SELECT g.title FROM game g WHERE g.title LIKE '%abc%'

我要做的就是像这样打印出所有的标题(用粗体匹配):

abc // match
ABC // match
Abded ABc // match last part, space added for clarity

现在,我的脚本返回如下:

str_replace('abc', '<b>abc</b>', $row['title'])
abc // matches
ABC
AbdedABc

有人知道任何算法(或其他方式)不改变字母大写/小写?

您正在寻找一个区分大小写的替换吗?查看str_ireplace

我不知道你想做什么,但匹配abc的任何组合在大写或小写,并使其加粗,你可以这样做:

 $data = "testABC";
 echo preg_replace("/(abc)/i","<bold>$1</bold>",$data);