php专区

 首页 > php专区 > PHP应用 > 常用功能 > PHP记录用户通过搜索引擎进网站的关键词并给出

PHP记录用户通过搜索引擎进网站的关键词并给出

分享到:
【字体:大 中 小】
导读:
          本文章给大家介绍PHP记录用户通过搜索引擎进网站的关键词并给出相关结果,有需要了解的同学可进入参考,下面是进入你网站的情况的相关实现代码,更多的,大家自己拓展,代码如下:$rfr...

PHP记录用户通过搜索引擎进网站的关键词并给出相关结果

本文章给大家介绍PHP记录用户通过搜索引擎进网站的关键词并给出相关结果,有需要了解的同学可进入参考,下面是进入你网站的情况的相关实现代码,更多的,大家自己拓展,代码如下:

  1. $rfr = $_SERVER['HTTP_REFERER']; 
  2. //if(!$rfr) $rfr='http://'.$_SERVER['HTTP_HOST']; 
  3.  
  4. if($rfr) 
  5. { 
  6.  $p=parse_url($rfr); 
  7.  parse_str($p['query'],$pa); 
  8.  $p['host']=strtolower($p['host']); 
  9.  $arr_sd_key=array( 
  10.      'baidu.com'=>'word', 
  11.      'google.com'=>'q', 
  12.      'sina.com.cn'=>'word', 
  13.      'sohu.com'=>'word', 
  14.      'msn.com'=>'q', 
  15.      'bing.com'=>'q', 
  16.      '163.com'=>'q', 
  17.      'yahoo.com'=>'p' 
  18.      ); 
  19.  $keyword=''; 
  20.  $sengine=$p['host']; 
  21.  foreach($arr_sd_key as $se=>$kwd) 
  22.  { 
  23.   if(strpos($p['host'],$se)!==false) 
  24.   { 
  25.    $keyword=$pa[$kwd]; 
  26.    $sengine=$se; 
  27.    break; 
  28.   } 
  29.  } 
  30.  $sql="insert into visit_log(domain,key_word,ct)"; 
  31. } 

上面的代码实现不了根据用户来的词给出相关结果,下面我来再进行调上面的函数,代码如下:

  1. function unescape($str) { 
  2.  $ret = ''; 
  3.  $len = strlen($str); 
  4.  for ($i = 0; $i < $len; $i++) { 
  5.   if ($str[$i] == '%' && $str[$i +1] == 'u') { 
  6.    $val = hexdec(substr($str, $i +2, 4)); 
  7.    if ($val < 0x7f) 
  8.     $ret .= chr($val); 
  9.    else 
  10.     if ($val < 0x800) 
  11.      $ret .= chr(0xc0 | ($val >> 6)) . chr(0x80 | ($val & 0x3f)); 
  12.     else 
  13.      $ret .= chr(0xe0 | ($val >> 12)) . chr(0x80 | (($val >> 6) & 0x3f)) . chr(0x80 | ($val & 0x3f)); 
  14.  
  15.    $i += 5; 
  16.   } else 
  17.    if ($str[$i] == '%') { 
  18.     $ret .= urldecode(substr($str, $i, 3)); 
  19.     $i += 2; 
  20.    } else 
  21.     $ret .= $str[$i]; 
  22.  } 
  23.  return $ret; 
  24. } 
  25. function ls_get_delim($ref) { 
  26.  $search_engines = array ( 
  27.   'google.com.hk' => 'q', 
  28.   'google.com.tw' => 'q', 
  29.   'go.google.com' => 'q', 
  30.   'google.com' => 'q', 
  31.   'blogsearch.google.com' => 'q', 
  32.   'cn.bing.com' => 'q', 
  33.   'one.cn.yahoo.com' => 'p', 
  34.   'baidu.com' => 'wd', 
  35.   'soso.com' => 'w', 
  36.   'youdao.com' => 'q', 
  37.   'sogou.com' => 'query' 
  38.  ); 
  39.  $delim = false; 
  40.  // 判断 
  41.  if (isset ($search_engines[$ref])) { 
  42.   $delim = $search_engines[$ref]; 
  43.  } 
  44.  return $delim; 
  45. } 
  46.  
  47. function ls_get_refer() { 
  48.  // 判断前一页面的 URL 地址 
  49.  $queryString = $_GET['referer']; 
  50.  $queryString = unescape($queryString); 
  51.  if (!isset ($queryString) || ($queryString == '')) 
  52.   return false; 
  53.  $referer_info = parse_url($queryString); 
  54.  $referer = $referer_info['host']; 
  55.  //去除www. 
  56.  if (substr($referer, 0, 4) == 'www.') 
  57.   $referer = substr($referer, 4); 
  58.  return $referer; 
  59. } 
  60.  
  61. function ls_getinfo($what) { 
  62.  $referer = ls_get_refer(); 
  63.  if (!$referer) 
  64.   return false; 
  65.  $delimiter = ls_get_delim($referer); 
  66.  if ($delimiter) { 
  67.   $terms = ls_get_terms($delimiter); 
  68.   if ($what == 'isref' && $terms != '') { 
  69.    return true; 
  70.   } 
  71.   if ($what == 'terms') { 
  72.    echo $terms; 
  73.   } 
  74.  } 
  75.  return false; 
  76. } 
  77.  
  78. function yxiao_seems_utf8($str) { 
  79.  $length = strlen($str); 
  80.  for ($i = 0; $i < $length; $i++) { 
  81.   $c = ord($str[$i]); 
  82.   if ($c < 0x80) 
  83.    $n = 0; # 0bbbbbbb 
  84.   elseif (($c & 0xE0) == 0xC0) $n = 1; # 110bbbbb 
  85.   elseif (($c & 0xF0) == 0xE0) $n = 2; # 1110bbbb 
  86.   elseif (($c & 0xF8) == 0xF0) $n = 3; # 11110bbb 
  87.   elseif (($c & 0xFC) == 0xF8) $n = 4; # 111110bb 
  88.   elseif (($c & 0xFE) == 0xFC) $n = 5; # 1111110b 
  89.   else 
  90.    return false; # Does not match any model 
  91.   for ($j = 0; $j < $n; $j++) { # n bytes matching 10bbbbbb follow ? 
  92.    if ((++ $i == $length) || ((ord($str[$i]) & 0xC0) != 0x80)) 
  93.     return false; 
  94.   } 
  95.  } 
  96.  return true; 
  97. } 
  98.  
  99. function ls_get_terms($d) { 
  100.  //取得查询值 
  101.  $queryString = $_GET['referer']; 
  102.  $queryString = unescape($queryString); 
  103.  $query_str = parse_url($queryString); 
  104.  parse_str($query_str[query], $query_str); 
  105.  $query = $query_str[$d]; 
  106.  $query = urldecode($query); 
  107.  
  108.  $query = str_replace("'", '', $query); 
  109.  $query = str_replace('"', '', $query); 
  110.  $query_array = preg_split('/[s,+.]+/', $query); 
  111.  $query_terms = implode(' ', $query_array); 
  112.  $terms = htmlspecialchars($query_terms); 
  113.  //gbk->utf8 
  114.  if (!yxiao_seems_utf8($terms)) { 
  115.   $terms = iconv("GBK", "UTF-8//IGNORE", $terms); 
  116.  } 
  117.  
  118.  return $terms; 
  119. } 
  120. if (ls_getinfo('isref')) { 
  121. ?> 
  122. document.write('

    ') 

  123. document.write('更多搜索结果:" ') 
  124. document.write('title="查看的搜索结果" rel="nofollow">') 
  125. document.write('

'); 
  •  
  • 分享到:
    php+ajax实时获取下拉数据程序代码 - php...
    php+ajax实时获取下拉数据程序代码 你点击需要的数据后,这个数据写如到当前输入框,并在后面添加逗号隔开,继续输入的时候,后台处理继续输出数据以供选择. 下面我们来看实例,html代码如下:    ajax实时获取下拉数据                  //   var funjiel...
    php soap 调用webservice应用测试 - php...
    php soap 调用webservice应用测试 SoapClient,php5自带的,当然,也可以使用nusoap.php这个纯php写的类,该类代码行数为7K多行,效率上肯定不如SoapClient. 一、寻找WebService来源 WebService可以自己编写,但是也可以从网络上去寻找现成的,我用的是www.xmethods.net里的US Zip Validator,它的...
    •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
    • 在这里……