|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 66472.1555 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
23.01.2009, 15:58
|
#1
|
true
Регистрация: 26.09.2007
Сообщений: 234
Бабло: $44615
|
заделитесь пхп скриптом для разбора реферера
заделитесь пхп скриптом для разбора реферера, нужно разбирать реферер юзверей которые приходят из поисковиков...
|
|
|
23.01.2009, 17:02
|
#2
|
in.php
Регистрация: 16.04.2007
Адрес: СПб
Сообщений: 502
Бабло: $62500
|
$_SERVER["HTTP_REFERER"]
parse_str()
|
|
|
23.01.2009, 20:24
|
#3
|
true
Регистрация: 26.09.2007
Сообщений: 234
Бабло: $44615
ТС -->
|
ТС
разбора реферера c парсингом кея по которому пришли, для разных поисковиков, точнее )
|
|
|
23.01.2009, 21:47
|
#4
|
Senior Member
Регистрация: 28.10.2007
Сообщений: 102
Бабло: $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;
}
|
|
|
24.01.2009, 02:05
|
#5
|
Member
Регистрация: 29.10.2007
Сообщений: 77
Бабло: $16146
|
у меня такой, не совсем эффективный и разборчивый код, но работает
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
|
|
|
24.01.2009, 02:15
|
#6
|
experienced user xrumer
Регистрация: 25.10.2007
Сообщений: 1,067
Бабло: $89845
|
Цитата:
большое разнообразие поисковиков замусоривало статистику, поэтому закомментированы и определяются как Other
|
а много в них трафа?
|
|
|
24.01.2009, 02:19
|
#7
|
Member
Регистрация: 29.10.2007
Сообщений: 77
Бабло: $16146
|
нет, потому и закомментированы, чтоб по 1-2 уника не выводились в статистику
|
|
|
26.01.2009, 18:26
|
#8
|
true
Регистрация: 26.09.2007
Сообщений: 234
Бабло: $44615
ТС -->
|
ТС
спасибо
|
|
|
26.01.2009, 19:05
|
#9
|
Barbecue Boss
Регистрация: 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 кий
}
|
|
|
|