A-A+
php搜索–多关键词如何描红
在用谷歌或百度搜索一个关键词,搜索引擎会把我们搜索的关键词变红,在我们自己的网站上面难免会用到站内搜索的功能,如果将查询网站页面中的关键词描红或将变关键词变成其它颜色,这样在查找资料里就不会觉得疲劳了,下面说一下多关键词描红的简单原理。
首先将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); }
支持原创技术文章,写原创内容要坚持哦。。
可惜我的是ASP的!。
乍一看博主的网站想一个论坛,不错。哈哈,第二次来了哦,亲,网络茶馆等你哦。
这个问题困扰了我很久哦, 今天终于得到解决了, 这个博客收藏了。
这个有什么作用呢。