好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

$rfr  =  $_SERVER [ 'HTTP_REFERER' ];  //if(!$rfr) $rfr='http://'.$_SERVER['HTTP_HOST'];     if ( $rfr )  {    $p = parse_url ( $rfr );    parse_str ( $p [ 'query' ], $pa );    $p [ 'host' ]= strtolower ( $p [ 'host' ]);    $arr_sd_key = array (        'baidu测试数据' => 'word' ,        'google测试数据' => 'q' ,        'sina测试数据.cn' => 'word' ,        'sohu测试数据' => 'word' ,        'msn测试数据' => 'q' ,        'bing测试数据' => 'q' ,        '163测试数据' => 'q' ,        'yahoo测试数据' => 'p'        );    $keyword = '' ;    $sengine = $p [ 'host' ];    foreach ( $arr_sd_key   as   $se => $kwd )   {     if ( strpos ( $p [ 'host' ], $se )!==false)    {      $keyword = $pa [ $kwd ];      $sengine = $se ;      break ;    }   }    $sql = "insert into visit_log(domain,key_word,ct)" ;  } 

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

<?php  function  unescape( $str ) {    $ret  =  '' ;    $len  =  strlen ( $str );    for  ( $i  = 0;  $i  <  $len ;  $i ++) {     if  ( $str [ $i ] ==  '%'  &&  $str [ $i  +1] ==  'u' ) {      $val  = hexdec( substr ( $str ,  $i  +2, 4));      if  ( $val  < 0x7f)       $ret  .=  chr ( $val );      else        if  ( $val  < 0x800)        $ret  .=  chr (0xc0 | ( $val  >> 6)) .  chr (0x80 | ( $val  & 0x3f));       else         $ret  .=  chr (0xe0 | ( $val  >> 12)) .  chr (0x80 | (( $val  >> 6) & 0x3f)) .  chr (0x80 | ( $val  & 0x3f));        $i  += 5;    }  else       if  ( $str [ $i ] ==  '%' ) {       $ret  .= urldecode( substr ( $str ,  $i , 3));       $i  += 2;     }  else        $ret  .=  $str [ $i ];   }    return   $ret ;  }  function  ls_get_delim( $ref ) {    $search_engines  =  array  (     'google测试数据.hk'  =>  'q' ,     'google测试数据.tw'  =>  'q' ,     'go.google测试数据'  =>  'q' ,     'google测试数据'  =>  'q' ,     'blogsearch.google测试数据'  =>  'q' ,     'cn.bing测试数据'  =>  'q' ,     'one.cn.yahoo测试数据'  =>  'p' ,     'baidu测试数据'  =>  'wd' ,     'soso测试数据'  =>  'w' ,     'youdao测试数据'  =>  'q' ,     'sogou测试数据'  =>  'query'    );    $delim  = false;    // 判断     if  (isset ( $search_engines [ $ref ])) {     $delim  =  $search_engines [ $ref ];   }    return   $delim ;  }    function  ls_get_refer() {    // 判断前一页面的 URL 地址     $queryString  =  $_GET [ 'referer' ];    $queryString  = unescape( $queryString );    if  (!isset ( $queryString ) || ( $queryString  ==  '' ))     return  false;    $referer_info  =  parse_url ( $queryString );    $referer  =  $referer_info [ 'host' ];    //去除HdhCmsTest     if  ( substr ( $referer , 0, 4) ==  'HdhCmsTest' )     $referer  =  substr ( $referer , 4);    return   $referer ;  }    function  ls_getinfo( $what ) {    $referer  = ls_get_refer();    if  (! $referer )     return  false;    $delimiter  = ls_get_delim( $referer );    if  ( $delimiter ) {     $terms  = ls_get_terms( $delimiter );     if  ( $what  ==  'isref'  &&  $terms  !=  '' ) {      return  true;    }     if  ( $what  ==  'terms' ) {      echo   $terms ;    }   }    return  false;  }    function  yxiao_seems_utf8( $str ) {    $length  =  strlen ( $str );    for  ( $i  = 0;  $i  <  $length ;  $i ++) {     $c  = ord( $str [ $i ]);     if  ( $c  < 0x80)      $n  = 0; # 0bbbbbbb     elseif  (( $c  & 0xE0) == 0xC0)  $n  = 1; # 110bbbbb     elseif  (( $c  & 0xF0) == 0xE0)  $n  = 2; # 1110bbbb     elseif  (( $c  & 0xF8) == 0xF0)  $n  = 3; # 11110bbb     elseif  (( $c  & 0xFC) == 0xF8)  $n  = 4; # 111110bb     elseif  (( $c  & 0xFE) == 0xFC)  $n  = 5; # 1111110b     else       return  false; # Does not match any model     for  ( $j  = 0;  $j  <  $n ;  $j ++) { # n bytes matching 10bbbbbb follow ?      if  ((++  $i  ==  $length ) || ((ord( $str [ $i ]) & 0xC0) != 0x80))       return  false;    }   }    return  true;  }    function  ls_get_terms( $d ) {    //取得查询值     $queryString  =  $_GET [ 'referer' ];    $queryString  = unescape( $queryString );    $query_str  =  parse_url ( $queryString );    parse_str ( $query_str [query],  $query_str );    $query  =  $query_str [ $d ];    $query  = urldecode( $query );      $query  =  str_replace ( "'" , '',  $query );    $query  =  str_replace ( '"' ,  '' ,  $query );    $query_array  = preg_split( '/[s,+.]+/' ,  $query );    $query_terms  = implode( ' ' ,  $query_array );    $terms  = htmlspecialchars( $query_terms );    //gbk->utf8     if  (!yxiao_seems_utf8( $terms )) {     $terms  = iconv( "GBK" ,  "UTF-8//IGNORE" ,  $terms );   }      return   $terms ;  }  if  (ls_getinfo( 'isref' )) {  ?>  document.write( '<div id="serp"><p>' )  document.write( '更多搜索结果:<em><a href="/search?q=<?php ls_getinfo(terms); ?>" ' )  document.write( 'title="查看<?php ls_getinfo(terms); ?>的搜索结果" rel="nofollow"><?php ls_getinfo(terms); ?></a></em>' )  document.write( '</p></div>' );  <?php } ?> 

查看更多关于PHP记录用户通过搜索引擎进网站的关键词并给出的详细内容...

  阅读:50次