WebScript.Ru
C:\   главная  ::   о сайте  ::  каталог скриптов  ::  гнездо  ::  форум  ::   авторам  :: Новостройки ::   ХОСТИНГ  ::

|| разделы::
|| поиск по сайту::

|| реклама::
|| новости почтой::
Рассылки Subscribe.Ru ::



Новости сайта WebScript.Ru
Популярные статьи

Hot 5 Stories

|| рекомендуем::




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. Работает статистика без нареканий и дает кроме всего прочего, много всяких полезностей, - статистику посещения из поисковиков в количественном виде, статистику поисковых запросов по сайту вцелом и по каждой странице в отдельности и др. Достоинство такого варианта в его простоте и скорости работы.




 :::::  artur пишет 16.03.2011 @ 16:47 
мне нужна помощь в установке! ася 496158423 или мыло support@livebux.de
 :::::  uzunhair пишет 21.01.2012 @ 11:50 
Тоже самое ведь делают счетчики которые ставят на сайт?
 :::::  lfybzh пишет 29.03.2015 @ 14:53 
lfybzh ykbd 13
hk;hktopkhbgklkfjfjkld
ll;skmcnxb jdiw9
Имя:
Email:
URL

Введите сумму двух чисел семь и шесть (семь+шесть=?)
Запомнить мою информацию

* Html запрещен* Ваш E-mail опубликован не будет.

Copyright © 2000-2001 WebScript.Ru nas@webscript.ru
Design © 2001 by Parallax Design Studio (aka Spectator.ru)
Все торговые марки и авторские права на эту страницу принадлежат их соответствующим владельцам.
Сгенерировано за: 0.0085971