php获取搜索引擎搜索关键词关键字的正则表达式实现方法

获取搜索引擎关键词,然后针对性的显示匹配结果,对于提升用户访问友好性有很大的帮助。

php获取搜索引擎关键词的方法,网上有一些,但是并不全面,而使用正则表达式则可以简单的实现该功能。参见如下代码示例:

code: php;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
header("Content-type:text/html;charset=utf-8");
 
function get_keyword($url, &$keywords)
{
  $regex = "/(?:soso.+?w=|360.+?q=|baidu.+?wd=|baidu.+?kw=|baidu.+?word=|google.+?q=|sogou.+?query=|bing.+?q=|yahoo.+?[?|&]p=|lycos.+?query=|onseek.+?keyword=|search.tom.+?word=|search.qq.com.+?word=|zhongsou.com.+?word=|search.msn.com.+?q=|yisou.com.+?p=|sina.+?word=|sina.+?query=|sina.+?_searchkey=|sohu.+?word=|sohu.+?key_word=|sohu.+?query=|163.+?q=|Alltheweb.+?q=|115.+?q=|youdao.+?q=|bing.+?q=|114.+?kw=)([^&]*)/";
 
  $matches = array();
  if(preg_match($regex.'i', $url, $matches)){
    $keywords = urldecode($matches[1]) . " ";
    $keywords = mb_convert_encoding($keywords, "UTF-8", "UTF-8,GB2312,GBK");
/*
    echo "<pre>", $matches[0];
    echo "<br/>",$keywords;
    echo "</pre>";
*/
    return $keywords;
  }
  return false;
}
 
$url=isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';//入站url
/*
$url = '#http://www.baidu.com/s?ie=utf-8&bs=php+%E6%AD%A3%E5%88%99&f=8&rsv_bp=1&wd=php+%E6%AD%A3%E5%88%99&inputT=0#';
$url = "http://cn.bing.com/search?q=site%3Alzw.me+%E5%BF%97%E6%96%87%E5%B7%A5%E4%BD%9C%E5%AE%A4&qs=n&form=QBRE&pq=site%3Alzw.me+%E5%BF%97%E6%96%87%E5%B7%A5%E4%BD%9C%E5%AE%A4&sc=0-0&sp=-1&sk=";
$url = "http://www.sogou.com/web?query=site%3Alzw.me+%D6%BE%CE%C4%B9%A4%D7%F7%CA%D2+%B9%A4%D7%F7%CA%D2&_asf=www.sogou.com&_ast=1347285377&w=01019900&p=40040100&sut=10120&sst0=1347285376751";
//*/
$url = "http://search.yahoo.com/search;_ylt=Ale90GdGX6zXqXZkdrOFVeObvZx4?p=site%3Alzw.me+%E5%BF%97%E6%96%87%E5%B7%A5%E4%BD%9C%E5%AE%A4+%E5%B7%A5%E4%BD%9C%E5%AE%A4+%E5%BF%97%E6%96%87&toggle=1&cop=mss&ei=UTF-8&fr=yfp-t-701";
 
echo "<pre>";
get_keyword($url,$keywords);
echo $keywords;
echo "<br />";
 
$arr_keys = explode(" ",trim($keywords));
 
print_r($arr_keys);
echo "</pre>";
?>
点赞 (0)
  1. 火端网络说道:
    Google Chrome 39.0.2171.99 Google Chrome 39.0.2171.99 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

    我得自己加个好搜的

  2. 猫她妈说道:

    博客导航栏真的很好玩

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code