A-A+

php搜索–多关键词如何描红

2012年03月12日 PHP技术文章 评论 5 条 阅读 461 views 次

在用谷歌或百度搜索一个关键词,搜索引擎会把我们搜索的关键词变红,在我们自己的网站上面难免会用到站内搜索的功能,如果将查询网站页面中的关键词描红或将变关键词变成其它颜色,这样在查找资料里就不会觉得疲劳了,下面说一下多关键词描红的简单原理。

首先将form提交过来的表单用PHP的函数explode进行分割:$s_search=explode(" ",$s_search);,这样会通过空格将关键词分成多个,打印出来,就是从0开始递归显示关键词。

搜索查询的SQL语句如下图所示:

显示的时候直接通过 str_replace 替换显示即可。

$row[title]=str_replace($s_search[0], "$s_search[0]", $row[title]);

$row[title]=str_replace($s_search[1], "$s_search[1]", $row[title]);

这样在页面当中搜索的关键词就直接被替换成为 关键词 关键词这样的格式了,有一点不好的是笔者在火狐的浏览器下面显示不正确,直接被显示出来了,所以建议定义CSS样式来控制就没有问题了。

下面是一个不错的搜索函数,可以直接参考使用,这里只是介绍了多关键词描红的一个原理,大家可以看一下CMS里面描红功能,写得比较完善。

function SearchReplaceKw($string,$sokw=''){
  if(empty($sokw) || empty($string)) return $string;
  $badString = array(
  '~',  '!',  '@',  '#',  '$',  '%',  '^',  '&',  '*',  '(',  ')',  '-',  '+',  '[',  ']',
  ':',  ';',  '\'', '"',  '|',  '\\', ',',  '.',  '?',  '/',  '<',  '>',
  );
  $sokw = str_replace($badString,' ',$sokw);
  $sokw = preg_replace('/\s+/','|',$sokw);
  return preg_replace("/($sokw)/",'<font color="red">\\1</font>',$string);
  }
标签:

5 条留言  访客:5 条  博主:0 条

  1. PHP乐知博客

    支持原创技术文章,写原创内容要坚持哦。。

  2. 宁峰

    可惜我的是ASP的!。

  3. 网络茶馆

    乍一看博主的网站想一个论坛,不错。哈哈,第二次来了哦,亲,网络茶馆等你哦。

  4. 郭涵倩

    这个问题困扰了我很久哦, 今天终于得到解决了, 这个博客收藏了。

  5. godaddy优惠码

    这个有什么作用呢。

给我留言