описание
Стартовая страницаНаписать письмоКаталог работ


Все статьи

23.07.2010 Cкрипт статистики поисковых запросов


Прислал: Yury Gusin [ 22.07.2010 @ 16:22 ]
Раздел:: [ Статьи по PHP ]



В данной статье представлен PHP скрипт на базе которого легко можно будет
создать модуль статистки поисковых запросов для своего сайта. Такой модуль
может выуживать из поискового запроса по которому пользователь попал на ваш сайт
название поисковой машины и собственно сам поисковый запрос. Все это можно
накапливать в текстовой или другой базе с последующим выводом на какую либо
страницу сайта находящуюся в админпанели. Такая статистика очень полезна для
админа сайта, поскольку дает полную картину посещаемости сайта из поисковиков. В
дальнейшем все можно развить и привязать запросы к страницам сайта, что даст
картину посещаемости каждой отдельной страницы из поисковых систем. Можно еще
много рассуждать по этому поводу. Если короче то вот сам скрипт:


Как известно переход на сайт из поисковой машины хранится в суперглобале
$_SERVER['HTTP_REFERER'] Поэтому запрос можно загрузить в $refer


$refer = !empty($_SERVER['HTTP_REFERER'] ?
strtolower($_SERVER['HTTP_REFERER']): 'None')


Далее будем работать с $refer из которой нужно выудить поисковый запрос и
определить поисковую машину из которой был выполнен переход на сайт. Прежде
чем выудить сам запрос нужно определить машину, поскольку только тогда станет
ясно в какой переменной переданной с запросом хранится сам текст запроса. Это
легко сделать имея на вооружении матрицу или список поисковых машин. Такой
список можно найти в Интернете в разных вариантах. Но мое внимание привлекла
матрица поисковых машин такого вида:


$searchEngines=array(

'images.google.'=>array('q','prev'),

'bing.com'=>'q',

'.alot.'=>'q',

'a993.com'=>'q1',

'abcsok.'=>'q',

'alltheweb.'=>'q',

'altavista.'=>'q',

'aol.'=>array('q','query','encquery'),

'aolsvc.'=>'query',

'avantfind.com'=>'keywords',

'bonvote.com'=>'search',

'bonweb.com'=>'search',

'comcast.net'=>'q',

'conduit.'=>'q',

'eniro.se'=>'search_word',

'excite.'=>'search',

'google.'=>array('q','as_q'),

'gogo.ru'=>'q',

'yandex.'=>array('text','query'),

'ya.ru'=>'text',

'hotbot.'=>'query',

'icerocket.com'=>'q',

'icq.com'=>'q',

'isheyka.com'=>'q',

'midco.net'=>'q',

'live.com'=>'q',

'msn.'=>'q',

'yahoo.'=>array('p','k'),

'search.'=>'q',

'kvasir.no'=>'q',

'myway.com'=>'searchfor',

'netscape.'=>array('q','query'),

'oceanfree.net'=>'as_q',

'qip.ru'=>'query',

'sweetim.com'=>'q',

'tut.by'=>'query',

'ukr.net'=>'search_query',

'search.oboz.ua'=>'k',

'search.www.infoseek.co.jp'=>'qt',

'.setooz.com'=>'query',

'toile.com'=>'q',

'vinden.nl'=>'q',

'.i.ua'=>'q',

'.mail.ru'=>array('q','tag'),

'.onru.ru'=>'q',

'aport.ru'=>'r',

'find.ru'=>'text',

'gde.ru'=>array('keywords','query','t','search_query','id'),

'go.km.ru'=>'sq',

'meta.ua'=>'q',

'metabot.ru'=>'st',

'nerus.ru'=>'query',

'nigma.ru'=>array('s','pq'),

'nova.rambler.ru'=>'query',

'poisk.ru'=>'text',

'protonet.ru'=>'q',

'rambler.ru'=>'words',

'tyndex.ru'=>'pnam',

'webalta.ru'=>'q',

'exactseek.com'=>array('q','query'),

'lycos.' => 'query',

'ask.' => 'q',

'cnn.' => 'query',

'looksmart.' => 'qt',

'about.' => 'terms',

'mamma.' => 'query',

'gigablast.' => 'q',

'voila.' => 'rdata',

'virgilio.' => 'qs',

'baidu.' => 'wd',

'alice.' => 'qs',

'najdi.' => 'q',

'club-internet.' => 'q',

'mama.' => 'query',

'seznam.' => 'q',

'netsprint.' => 'q',

'szukacz.' => 'q',

'yam.' => 'k',

'pchome.' => 'q',

);


Если внимательно присмотреться то данная матрица устроена очень грамотно. В
качестве ключей строки из части названий поисковых машин, а параметры - название
(названия) переменных в окторых передается текст запроса. Задача скрипта состоит
в том, чтобы на базе содержимого $refer и выше представленной матрицы получить
текст поискового запроса и название поисковой машины откуда был выполнен
переход на ваш сайт. Ниже и представлен такой простейший скрипт, в котором в $site
будет находиться название поисковика, а в $s_word текст поискового запроса.


$tmp = parse_url(urldecode(trim($refer)));

$site = $tmp['host'];

$str = $tmp['query'];

parse_str($str,$arr);

foreach ($searchEngines as $key=>$value)

{

if(substr_count($site, $key))

{

foreach ($arr as $k=>$v)

{

if(is_array($value))

{

if(in_array ("$k",$value))

{$s_word = $v; break;}

}

elseif("$k" == $value) {$s_word = $v; break;}

else {$s_word = "None"; break;}

}

break;

}

}


Подобная методика и статистика поисковых запросов успешно реализована на php движке без баз
Acvarif-CMS. Работает статистика без нареканий и дает кроме всего прочего, много
всяких полезностей, типа статистики посещения из поисковиков страниц и др.
Достоинство такого варианта в его простоте и скорости работы.




»

Назад к списку

Новости студии

С Новым Годом!
31.12.2009
Уважаемые клиенты студии и гости нашего сайта!
Коллектив студии программирования Bleaksoft искренне поздравляет Вас с наступающим годом Тигра, и желает счастья, радости и успехов в следующем году.
Пусть в любых начинаниях Вас преследует постоянная удача!
Трекер заданий
20.12.2009
Для повышения эффективности работы запущен трекер заданий, в котором клиенты студии могут оставлять свои технические задания и замечания по проектам.
JavaScript Packer
01.12.2009
Для удобства, на сайте запущен собственный паковщик и деобфускатор Java - скриптов
Все новости

Rambler's Top100 Яндекс индекс цитирования Рейтинг@Mail.ru