Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.7570
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 23.01.2009, 15:58   #1
false
true
 
Регистрация: 26.09.2007
Сообщений: 218
Бабло: $41985
По умолчанию заделитесь пхп скриптом для разбора реферера

заделитесь пхп скриптом для разбора реферера, нужно разбирать реферер юзверей которые приходят из поисковиков...
false вне форума  
Старый 23.01.2009, 17:02   #2
mescalito
in.php
 
Аватар для mescalito
 
Регистрация: 16.04.2007
Адрес: СПб
Сообщений: 428
Бабло: $50000
По умолчанию

$_SERVER["HTTP_REFERER"]
parse_str()
mescalito вне форума  
Старый 23.01.2009, 20:24   #3
false
true
 
Регистрация: 26.09.2007
Сообщений: 218
Бабло: $41985
ТС -->
автор темы ТС По умолчанию

разбора реферера c парсингом кея по которому пришли, для разных поисковиков, точнее )
false вне форума  
Старый 23.01.2009, 21:47   #4
dude
Senior Member
 
Аватар для dude
 
Регистрация: 28.10.2007
Сообщений: 103
Бабло: $5303
По умолчанию

Цитата:
Сообщение от false Посмотреть сообщение
заделитесь пхп скриптом для разбора реферера, нужно разбирать реферер юзверей которые приходят из поисковиков...
Код:
   function getInfo($url)
   {
    $sengine = array();
    $sengine[] = array('name'=>'Google-Blogsearch','url'=>'http://blogsearch.google.com','host'=>'blogsearch\.google\.com','query_field'=>'q');
    $sengine[] = array('name'=>'Google-De','url'=>'http://www.google.de','host'=>'google\.de','query_field'=>'q');
    $sengine[] = array('name'=>'Google-Com','url'=>'http://www.google.com','host'=>'google\.com','query_field'=>'q');
    $sengine[] = array('name'=>'Google','url'=>'http://www.google.com','host'=>'google\.','query_field'=>'q');
    $sengine[] = array('name'=>'Yahoo-de','url'=>'http://www.yahoo.de','host'=>'de\.search\.yahoo\.com','query_field'=>'p');
    $sengine[] = array('name'=>'Yahoo-com','url'=>'http://www.yahoo.com','host'=>'search\.yahoo\.com','query_field'=>'p');
    $sengine[] = array('name'=>'MSN-Live','url'=>'http://search.live.com','host'=>'search\.live\.com','query_field'=>'q');
    $sengine[] = array('name'=>'MSN','url'=>'http://search.msn.com','host'=>'search\.msn\.com','query_field'=>'q');
    $sengine[] = array('name'=>'Alltheweb','url'=>'http://www.alltheweb.com','host'=>'alltheweb\.com','query_field'=>'q');
    $sengine[] = array('name'=>'Ask-De','url'=>'http://de.ask.com','host'=>'de\.ask\.com','query_field'=>'q');
    $sengine[] = array('name'=>'Ask-Com','url'=>'http://www.ask.com','host'=>'ask\.com','query_field'=>'q');
    $sengine[] = array('name'=>'LookSmart','url'=>'http://www.looksmart.com','host'=>'search\.looksmart\.com','query_field'=>'qt');
    $sengine[] = array('name'=>'Altavista-De','url'=>'http://www.altavista.de','host'=>'de\.altavista\.com','query_field'=>'q');
    $sengine[] = array('name'=>'Altavista-com','url'=>'http://www.altavista.com','host'=>'altavista\.com','query_field'=>'q');
    $sengine[] = array('name'=>'Web-De','url'=>'http://www.web.de','host'=>'suche\.web\.de','query_field'=>'su');
    $sengine[] = array('name'=>'Fireball','url'=>'http://www.fireball.de','host'=>'suche\.fireball\.de','query_field'=>'query');
    $sengine[] = array('name'=>'Lycos-De','url'=>'http://www.lycos.de','host'=>'suche\.lycos\.de','query_field'=>'query');
    $sengine[] = array('name'=>'Lycos-Com','url'=>'http://www.lycos.com','host'=>'search\.lycos\.com','query_field'=>'query');

      // no search engines in the db? then no need to search ...
      if (!is_array($sengine))
          return false;

      $url_info = parse_url($url); // parse the url

      // check each search engine in the database
      foreach ($sengine as $se)
      {
         // if the host of the search engine matches
         // the one of the url we have successfully
         // located the search engine
         if (eregi($se['host'], $url_info['host']))
         {
            // parse the query
            parse_str($url_info['query'], $query_info);
            // return all information
            return array('sengine_name'=>$se['name'],
                         'sengine_url'=>$se['url'],
                         'query'=>$query_info[$se['query_field']],
                         'url'=>$url);
         }
      }
      // if no search engine was found return false
      return false;
   }
dude вне форума  
Старый 24.01.2009, 02:05   #5
TIROS
Member
 
Регистрация: 29.10.2007
Сообщений: 73
Бабло: $14446
Отправить сообщение для TIROS с помощью ICQ
По умолчанию

у меня такой, не совсем эффективный и разборчивый код, но работает
PHP код:
function se_info($url)
    {
    if(
strpos($url,"translate.google."))    {$se="Google";            $par[]="q"$par[]="as_q"$par[]="as_epq"$url=urldecode($url);}
    elseif(
strpos($url,".104/"))            {$se="Google";            $par[]="q"$par[]="as_q"$par[]="as_epq"$url=urldecode($url);}
    elseif(
strpos($url,"google."))            {$se="Google";            $par[]="q"$par[]="as_q"$par[]="as_epq";}
    elseif(
strpos($url,"live."))            {$se="Live";            $par[]="q";}
    elseif(
strpos($url,"msn."))                {$se="MSN";                $par[]="q";}
    elseif(
strpos($url,"yahoo."))            {$se="Yahoo";            $par[]="p";}
    elseif(
strpos($url,"ask."))                {$se="Ask";                $par[]="q";}
    elseif(
strpos($url,"altavista."))        {$se="Altavista";        $par[]="q";}
    elseif(
strpos($url,"aol."))                {$se="AOL";                $par[]="query";}
    elseif(
strpos($url,"baidu."))            {$se="Baidu";            $par[]="wd"$par[]="word";}
    elseif(
strpos($url,"alice.it"))            {$se="Alice.it";        $par[]="qs";}
    elseif(
strpos($url,"yandex."))            {$se="Yandex";            $par[]="text";}
    elseif(
strpos($url,"rambler."))            {$se="Rambler";            $par[]="words";$par[]="query";}
    elseif(
strpos($url,"aport."))            {$se="Aport";            $par[]="r";}
    elseif(
strpos($url,"soso."))            {$se="Soso";            $par[]="w";}
    elseif(
strpos($url,"nigma."))            {$se="Nigma";            $par[]="s";}
    elseif(
strpos($url,"icq.com"))            {$se="ICQ";                $par[]="q";}
    
//поисковики Other
    
elseif(strpos($url,"hotbot."))            {$se="Other";            $par[]="MT";}
    elseif(
strpos($url,"web.de"))            {$se="Other";            $par[]="su";}
    elseif(
strpos($url,"who.is"))            {$se="Other";            $par[]="current_name";}
/*
    elseif(strpos($url,"northernlight."))    {$se="Other";            $par[]="qr";}
    elseif(strpos($url,"infoseek."))        {$se="Other";            $par[]="qt";}
    elseif(strpos($url,"mywebsearch."))        {$se="Mywebsearch";        $par[]="searchfor";}
    elseif(strpos($url,"myglobalsearch."))    {$se="Myglobalsearch";    $par[]="searchfor";}
    elseif(strpos($url,"excite."))            {$se="Excite";            $par[]="search";}
    elseif(strpos($url,"lycos."))            {$se="Lycos";            $par[]="query";}
    elseif(strpos($url,"alexa."))            {$se="Alexa";            $par[]="q";}
    elseif(strpos($url,"uol."))                {$se="Uol.com.br";        $par[]="q";}
    elseif(strpos($url,"eureka."))            {$se="Eureka";            $par[]="q";}
    elseif(strpos($url,"netzero."))            {$se="Netzero";            $par[]="query";}
    elseif(strpos($url,"juno."))            {$se="Juno";            $par[]="query";}
    elseif(strpos($url,"earthlink."))        {$se="Earthlink.net";    $par[]="q";}
    elseif(strpos($url,"netscape."))        {$se="Netscape";        $par[]="query";}
    elseif(strpos($url,"bellsouth."))        {$se="Bellsouth.net";    $par[]="q";}
    elseif(strpos($url,"comcast."))            {$se="Comcast.net";        $par[]="q";}
    elseif(strpos($url,"mozbot."))            {$se="Mozbot";            $par[]="q";}
    elseif(strpos($url,"mamma."))            {$se="Mamma";            $par[]="query";}
    elseif(strpos($url,"alltheweb."))        {$se="Alltheweb";        $par[]="query";}
    elseif(strpos($url,"winamp."))            {$se="Winamp";            $par[]="query";}
    elseif(strpos($url,"sweetim."))            {$se="Sweetim";            $par[]="q";}
    elseif(strpos($url,"alot."))            {$se="Alot";            $par[]="q";}
    elseif(strpos($url,"peoplepc."))        {$se="Peoplepc";        $par[]="q";}
    elseif(strpos($url,"suche.t-online."))    {$se="T-online.de";        $par[]="q";}
    elseif(strpos($url,"mail.ru"))            {$se="Mail.ru";            $par[]="q";}
    elseif(strpos($url,"tiscali."))            {$se="Tiscali";            $par[]="query";}
    elseif(strpos($url,"search.babylon."))    {$se="Babylon";            $par[]="q";}
    elseif(strpos($url,"search.conduit."))    {$se="Conduit";            $par[]="q";}
    elseif(strpos($url,"freenet.de"))        {$se="Freenet.de";        $par[]="query";}
    elseif(strpos($url,"verden.abcsok."))    {$se="ABCsok.no";        $par[]="q";}
    elseif(strpos($url,"search.com"))        {$se="Search";            $par[]="q";}
    elseif(strpos($url,"terra.es"))            {$se="Terra.es";        $par[]="query";}
    elseif(strpos($url,"seznam.cz"))        {$se="Seznam.cz";        $par[]="q";}
    elseif(strpos($url,"gamenext.nl"))        {$se="Gamenext.nl";        $par[]="q";}
    elseif(strpos($url,"virginmedia.com"))    {$se="Virginmedia";        $par[]="q";}
    elseif(strpos($url,"ie7pro."))            {$se="IE7pro";            $par[]="q";}
    elseif(strpos($url,"yodao."))            {$se="Yodao";            $par[]="q";}
    elseif(strpos($url,"fireball.de"))        {$se="Fireball.de";        $par[]="query";}
*/
    // общие параметры, поисковик - Other
    
elseif    (
            
strpos($url,"q=") ||
            
strpos($url,"q_orig=") ||
            
strpos($url,"query=") ||
            
strpos($url,"word=") ||
            
strpos($url,"words=") ||
            
strpos($url,"as_q=") ||
            
strpos($url,"string=") ||
            
strpos($url,"qry_str=") ||
            
strpos($url,"qry=") ||
            
strpos($url,"qkw=") ||
            
strpos($url,"qs=") ||
            
strpos($url,"qt=") ||
            
strpos($url,"qr=") ||
            
strpos($url,"kw=") ||
            
strpos($url,"p=") ||
            
strpos($url,"st=") ||
            
strpos($url,"url=") ||
            
strpos($url,"text=") ||
            
strpos($url,"search=") ||
            
strpos($url,"searchfor=") ||
            
strpos($url,"searchExpr=") ||
            
strpos($url,"searchText=") ||
            
strpos($url,"searchPhrase=") ||
            
strpos($url,"searchString=") ||
            
strpos($url,"Keywords="//конец
            
)
        {
        
$se="Other";
        
$par[]="q";
        
$par[]="q_orig";
        
$par[]="query";
        
$par[]="word";
        
$par[]="words";
        
$par[]="as_q";
        
$par[]="string";
        
$par[]="qry_str";
        
$par[]="qry";
        
$par[]="qkw";
        
$par[]="qs";
        
$par[]="qt";
        
$par[]="qr";
        
$par[]="kw";
        
$par[]="p";
        
$par[]="st";
        
$par[]="url";
        
$par[]="text";
        
$par[]="search";
        
$par[]="searchfor";
        
$par[]="searchExpr";
        
$par[]="searchText";
        
$par[]="searchPhrase";
        
$par[]="searchString";
        
$par[]="Keywords";
        }
    else {
$se='';}

    
$query='';
    if(
$se)
        {
        foreach(
$par as $n => $parameter)
            {
            if((
$pos=strpos($url,'?'.$parameter.'=')) || ($pos=strpos($url,'&'.$parameter.'=')))
                {
                
$part=explode('&',substr($url,$pos+strlen($parameter)+2));
                
$query=trim(urldecode($part[0]));
                if(
$query) break;
                }
            }
        }
    return 
compact('se','query');
    } 
большое разнообразие поисковиков замусоривало статистику, поэтому закомментированы и определяются как Other
TIROS вне форума  
Старый 24.01.2009, 02:15   #6
Kola
experienced user xrumer
 
Аватар для Kola
 
Регистрация: 25.10.2007
Сообщений: 1,067
Бабло: $88735
По умолчанию

Цитата:
большое разнообразие поисковиков замусоривало статистику, поэтому закомментированы и определяются как Other
а много в них трафа?
Kola вне форума  
Старый 24.01.2009, 02:19   #7
TIROS
Member
 
Регистрация: 29.10.2007
Сообщений: 73
Бабло: $14446
Отправить сообщение для TIROS с помощью ICQ
По умолчанию

нет, потому и закомментированы, чтоб по 1-2 уника не выводились в статистику
TIROS вне форума  
Старый 26.01.2009, 18:26   #8
false
true
 
Регистрация: 26.09.2007
Сообщений: 218
Бабло: $41985
ТС -->
автор темы ТС По умолчанию

спасибо
false вне форума  
Старый 26.01.2009, 19:05   #9
Toxic Dream
Barbecue Boss
 
Аватар для Toxic Dream
 
Регистрация: 11.09.2007
Сообщений: 51
Бабло: $500
По умолчанию

Коллеги блин) такая простая хуйня не должна быть на тыщщщщ строк) вот мой, собственный) если принесет вам много бабла угостите коняком)
Для самых популярных СЕ

PHP код:
$se $q false;
//перечисляем домены посиковиков через |
if (preg_match('/(google|yahoo|ask|live|msn|altavista|alltheweb|yandex|rambler)\./i'$r$m) ) $se=$m[1];
if (isset(
$ri['query']))   parse_str($ri['query'], $qi);
$q_v = array('q''p''text''query');
foreach (
$q_v as $qv)   if (isset($qi[$qv])){  $q $qi[$qv];   break; }

// а тут проверяем
if ($se && $q){

//в переменной $se будет название поисковика из верхнего списка
//в $q кий


Toxic Dream вне форума