我搜索时,如何让你搜索的关键字显示为红色 将得到结果中的关键字替换成<font color=red>关键字</font>后再输出。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ereg_replace($keyword,"<font color='#ff0000'>$keyword</font>",$str); $text = "Ningbo Lingqiaolu";$search = "ning";$out = eregi_replace($search,"<font color='#ff0000'>$search</font>",text); 呵呵,再贴一下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);?> 给你一个函数吧/*功能:关键字高亮显示编写时间: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;} 新手求助MYSQL BACKUP问题 appweb 服务器 php扩展c问题 有关PHP的switch结构的问题 什么是标量变量,与标量变量相对应的是什么变量呢? 关于php解析xml并存入数组的问题 php ftp php 报表问题 如何在post后立即取得相应id? 求教COOKIE的用法! PHP网站链接oracle问题 请问各位高手,谁有用 php 做的新闻系统 不得不提的一个问题!
$search = "ning";$out = eregi_replace($search,"<font color='#ff0000'>$search</font>",text);
首先建立一个测试用的表,字段如下:
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);
?>
/*功能:关键字高亮显示
编写时间: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;
}