$keyword = preg_replace( '/\+/',' ',$keyword );
$keyword = preg_replace( '/\s+/',' ',$keyword );
$k = explode( ' ', $keyword );for ( $j = 0; $j < count($k); $j++ ) {
    $Pkey = preg_replace( '/'.$k[$j].'/i','<strong>'.$k[$j].'</strong>',$Pkey );
}我用这样的来做站内搜索,关键字加亮显示, 但是出现了一个问题:
这个是不区分大小写的, 假如我搜索 'me',  结果 ‘ME’变成了 ‘me’ 粗体输出;
可是这已经改变了我的初衷, 我是想要 'ME' 不变成 'me' 粗体输出;请问老师们, 这个何解;谢谢~

解决方案 »

  1.   

    for ( $j = 0; $j < count($k); $j++ ) { 
        $Pkey = preg_replace( '/'.$k[$j].'/i',' <strong>\\0</strong>',$Pkey ); 

      

  2.   

    我换成这个之后,搜索变的更糟糕 ,如下
    <strong> </strong>W<strong> </strong>h<strong> </strong>o<strong> </strong>l<strong> </strong>e<strong> </strong>s<strong> </strong>a<strong> </strong>l<strong> </strong>e<strong> </strong> <strong> </strong>3<strong> </strong>p<strong> </strong>c<strong> </strong>s<strong> </strong>/<strong> </strong>l<strong> </strong>o<strong> </strong>t<strong> </strong> <strong> </strong>F<strong> </strong>r<strong> </strong>e<strong> </strong>e<strong> </strong> <strong> </strong>S<strong> </strong>h<strong> </strong>i<strong> </strong>p<strong> </strong>p<strong> </strong>i<strong> </strong>n<strong> </strong>g<stro这个是搜索之后的源代码
    $Pkey 中每个字母之间都有空格