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

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

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

    '

  117. document.write('更多搜索结果:" '
  118. document.write('title="查看的搜索结果" rel="nofollow">'
  119. 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技术的分享社区,专属您自己的技术摘抄本、收藏夹。
    • 在这里……