昨天在网上闲逛,发现Qihangnet的博客上有篇文章,很老的。06年的,介绍了如何让通过搜索引擎过来的关键字高亮。原文来自于支 持百度的搜索引擎来源的关键字加亮,仔细看了一下,文中介绍了一段JS,那段JS是这个网站http://www.kryogenix.org/code/browser/searchhi/的。再根据Qihangnet的文章,我也尝试进行了一些转换,找了网上的一些javascript的gb2312toUTF8的代码,结果却死活不正常。出来都是乱码。分析了一下searchhi的源码。核心的一块就是在判断浏览器过来的参数。于是我在无法用JS转换编码后用PHP实现了一下(其实很恶心,百度到现在都是GB2312......)。
PHP代码
- function getReferer ()
- {
- if(isset( $_SERVER['HTTP_REFERER'] )){
- parse_str( parse_url( $_SERVER['HTTP_REFERER'] , PHP_URL_QUERY ) , $query);
- if(isSet( $query['q'] ) ){
- return $query['q'];
- }else if ( isSet( $query['p'] ) ){
- return $query['p'];
- }else if ( isSet( $query['wd'] ) ){
- if(!$query['wd']){
- return '';
- }
- return iconv( 'gb2312', 'utf-8', urldecode( $query['wd'] ) );
- //return urlencode(iconv( 'gb2312', 'utf-8', urldecode( $query['wd'] ) ));
- }
- }
- return '';
- }
取回这个referer后的参数后,再用searchhi的代码进行高亮了一下。因为我只是简单实现,所以效果很差。理论上应该是要根据传递过来的参数右下角弹窗,进行文章推荐的。。但我懒得搞了。直接就searchhi的代码简单实现了一下。
效果如下: