将得到结果中的关键字替换成<font color=red>关键字</font>后再输出。

解决方案 »

  1.   

    ereg_replace($keyword,"<font color='#ff0000'>$keyword</font>",$str);
      

  2.   

    $text = "Ningbo Lingqiaolu";
    $search = "ning";$out = eregi_replace($search,"<font color='#ff0000'>$search</font>",text);
      

  3.   

    呵呵,再贴一下phpteam高手的杰作:
        首先建立一个测试用的表,字段如下:
    create table test (
      id int(11) not null default '0' auto_increment,
      title varchar(255) not null,
      content text not null,
      primary key(id)
    );
        建好之后随便录入一些数据,到时候搜索用的。程序代码如下:<!php
    /*************************************************************
    /       支持逻辑OR/AND关键字搜索高亮显示搜索结果的代码
    /*************************************************************
    /        Title........: Search and Highlight Function
    /        Begin........: 2002-09-05
    /        Author.......: George
    /        E-mail.......: [email protected]
    /************************************************************//*************************************************************
    /  Function........: search_parse($keywords,$fields)
    /  Notes...........:
    /  ...$keywords....: eg. "a and b or c"
    /  ...$fields......: Field's name eg:array("field1","field2")
    /  Return..........: Return the SQL
    /************************************************************/
    function search_parse($keywords,$fields)
    {
      if ($keywords)
      {
        $words = explode(" ",$keywords);
        for ($i = 0;$i < count( $words ); $i++)
        {
          if ($words[$i])
          {
            if (strtolower($words[$i]) == "and" || strtolower($words[$i]) == "or")
            {
              if ($i > 0)
              {
                if($words[$i] == "and")  $sql.=" AND ";
                elseif($words[$i] == "or")  $sql.=" OR ";
              }
            }
            else
            {
              $first=0;
              $sql_tmp="( ";
              foreach ($fields as $key => $value)
              {
                if ($first == 0)
                {
                  $sql_tmp.=$value." LIKE '%".$words[$i]."%'";
                  $first=1;
                }
                else
                {
                  $sql_tmp.=" OR ".$value." LIKE '%".$words[$i]."%'";
                }
              }
              if(trim($sql_tmp) != "(") $sql_tmp.=" )";
              if($i == 0)  $sql=$sql_tmp;
              else $sql.=$sql_tmp;
            }
          }
        }
      }
      return $sql;
    }
    /*************************************************************
    /  Function........: highlight_result($str,$keywords)
    /  Notes...........:
    /  ...$str.........: The String needed to highlight
    /  ...$keywords....: eg. "a and b or c"
    /  Return..........: Return the Highlighted String
    /************************************************************/
    function highlight_result($str,$keywords)
    {
      $words = explode(" ",$keywords);
      for ($i=0;$i<count($words);$i++)
      {
        if(strtolower($words[$i]) == "and" or strtolower($words[$i]) == "or")
          continue;
        $str=str_replace("$words[$i]","<font color=blue><b>$words[$i]</b></font>",$str);
      }
      return $str;
    }//Example:
    $keywords="一 and 数 or 之";
    $fields=array("title","content");
    $link = mysql_connect("localhost", "root", "") or die("Could not connect");
    mysql_select_db("test",$link) or die("Could not Select the Database!");
    $sql=search_parse($keywords,$fields);
    echo $sql;
    $query="select title from test where $sql";
    $result=mysql_query($query) or die("Invalid query:$query");
    while($row=mysql_fetch_array($result))
    {
      echo "<li>".highlight_result($row[title],$keywords)."</li>";
    }
    mysql_close($link);
    ?>
      

  4.   

    给你一个函数吧
    /*功能:关键字高亮显示
    编写时间:2003.5.1
    编写人:偶然
    变量:
    返回值:
    */
    function highlight_result($str,$keywords)
    {
      $words = explode(" ",$keywords);
      for ($i=0;$i<count($words);$i++)
      {
      if(strtolower($words[$i]) == "and" or strtolower($words[$i]) == "or")//关键词中如果有and 和or 则跳过
         continue;
       $str=str_replace("$words[$i]","<font color=#0000ff>$words[$i]</font>",$str);
      }
      return $str;
    }