问各位大侠一个关于搜索结果关键字高亮的问题.是这样的, 比如我要现在要在论坛里搜索帖子标题中含有 aaa 的帖子, 那么我搜寻出来的结果中,可能有aaa, 也可能有aAa, 也可能有AAA. 这些都没问题.现在我想做的是把这些搜索的关键字在搜索结果中高亮表示出来,这里就遇到问题了,我做高亮的办法是把我搜索的内容替换成高亮的格式(比如说 str_replace($keyword, "<b style='background-color:#FF0'>".$keyword."</b>", $row['title'])).问题就在于,比如我刚才搜索时键入的aaa($keyword='aaa'),那么虽然搜索结果中有所有包含aaa, aAa, AAA或者aaA的标题,但是却只有aaa被高亮了.我现在就想问一下,通过mysql我是否能得到我搜寻的结果?就是那些  aaa, aAa或者AAA之类的?我能直接就只是得到这些值吗?又或者有什么别的途径来解决这个问题?

解决方案 »

  1.   

    eregi_replace
    (PHP 3, PHP 4, PHP 5)eregi_replace -- 不区分大小写替换正则表达式
    说明
    string eregi_replace ( string pattern, string replacement, string string )
    本函数和 ereg_replace() 完全相同,只除了在匹配字母字符时忽略大小写的区别。参见 ereg(),eregi() 和 ereg_replace()。 手册上这样说的
      

  2.   

    谢谢楼上,是个办法,可是还是有问题,这样一来,我高亮后,那些aaA aAa之类的就全变成高亮的aaa了.
      

  3.   

    str_ireplace() 对大小写不敏感,试一下
      

  4.   

    楼上的也谢谢了,现在不是替换的问题,因为就算替换成功了,原本的那些aaA和AAA一样会被替换成aaa,如果不能得到那些aaA或者AAA的值,还是没法解决问题.
      

  5.   

    $content = "xxxaaaxxxAaAxxxaAAxxxAAa";
    $keyword = "aaa";
    echo "忽略大小写(修正符i):".preg_replace("/".$keyword."/i","<font color=red>$0</font>",$content);
      

  6.   

    你没用对eregi_replace,也可以的。
    echo "忽略大小写(修正符i):".eregi_replace($keyword,"<font color=red>\\0</font>",$content);
      

  7.   

    可以用正则表达式完成,不过我不会。哎,学习ing.
      

  8.   

    楼上的你太牛B了!!!!膜拜ing!!!!结贴给分``也谢谢之前帮助我的几位`都有分!