$k=explode(" ",$_REQUEST[searchkey]);
while (list($rid,$row)=each($array))
{
//这里的$row表示一行,$row[列名]可得到某列的值
$user_id=$row["ID"];
$username=$row["username"];
for($i=0; $i<count($k);$i++)
{
$username=preg_replace("/($k[$i])/i","<font color=red>\\1</font>",$username);//正则替换高亮显示搜索关键字
echo $username;
}$limits=$row["limits"];
$addtime=$row["addtime"];
?>
为什么我高亮显示不了, 比如我输入1 2   它只显示2是红色的1不是红色的? 

解决方案 »

  1.   

    $k=explode(" ",$_REQUEST[searchkey]); 
    while (list($rid,$row)=each($array)) 

    //这里的$row表示一行,$row[列名]可得到某列的值 
    $user_id=$row["ID"]; 
    $username=$row["username"]; 
    $username=str_replace("$username"," <font color=red>$username</font>",$username);
    echo $username; 
    }
     
    ?> 
      

  2.   

    我是想做百度那样的搜索,形式$k=explode(" ",$_REQUEST[searchkey]);
    //这里只能处理文字后跟一个空格再跟文字要输输入多个空格就错误
     输入多个空格当着一个空格处理
    这里的正则表达式是怎样的?<font color=red>\\1 </font>
    //当我有时输入font red  r e等搜索关键字是这里显示不正确会显示出来
    这里应该如何来处理。