Получение ключевого слова, по которому пришли на сайт

Можно заметить что, если переходить с поисковика на некоторые форумы, то слова, которые были заданы для поиска, подсвечиваются. Это оказывает значительную помощь, когда нужно быстро найти нужную информацию. Теоретически можно пройти дальше и немного менять страницы в зависимости от категории поискового запроса посетителя.
Мною написана небольшая функция, при помощи которой возможно определить поисковый запрос по URL. При этом учтите, что выдача списка таких запросов нарушает лицензию поисковых машин, воспринимается как спам. Но если осторожно, то можно.


echo extractKeyword('http://www.yandex.ru/yandsearch?text=php+%D0%B2+southpark&lr=187')

выведет «php в southpark».


<?
$keyword = extractKeyword($_SERVER['HTTP_REFERER']);
if (stripos($keyword, 'southpark')!==false && stripos($keyword, 'php')===false) {
echo('<div class="notice">Это сайт о PHP, а не о <a href="http://www.southpark.org.ru/">SouthPark</a></div>');
}
?>

Вот и сама функция


/**
* Extract keyword from search URL
*
* @param string $url ex: http://google.com/search?q=%D1%82%D0%B5%D1%81%D1%82&btnG=Search
* @return string Keyword or false
*/
function extractKeyword($url) {
$searchEngines = array(
'google.' => 'q',
'yahoo.' => 'p',
'live.' => 'q',
'msn.' => 'q',
'aol.' => 'query',
'aol.' => 'encquery',
'lycos.' => 'query',
'ask.' => 'q',
'altavista.' => 'q',
'netscape.' => 'query',
'cnn.' => 'query',
'looksmart.' => 'qt',
'about.' => 'terms',
'mamma.' => 'query',
'alltheweb.' => 'q',
'gigablast.' => 'q',
'voila.' => 'rdata',
'virgilio.' => 'qs',
'baidu.' => 'wd',
'alice.' => 'qs',
'yandex.' => 'text',
'najdi.' => 'q',
'aol.' => 'q',
'club-internet.' => 'q',
'mama.' => 'query',
'seznam.' => 'q',
'search.' => 'q',
'szukaj.' => 'szukaj',
'szukaj.' => 'qt',
'netsprint.' => 'q',
'szukacz.' => 'q',
'yam.' => 'k',
'pchome.' => 'q',
'mail.ru' => 'q',
'rambler.ru' => 'words',
'meta.ua' => 'q',
'bigmir.net' => 'q',
'aport.ru' => 'r',
'a-counter' => 'sub_data',
'i.ua' => 'q'
);

$host = parse_url($url, PHP_URL_HOST);
$query = parse_url($url, PHP_URL_QUERY);
$queryItems = array();
parse_str($query, $queryItems);

foreach ($searchEngines as $needle=>$param) {
if (strpos($host, $needle)!==false && !empty($queryItems[$param])) {
return urldecode($queryItems[$param]);
}
}

return false;
}

Массив $searchEngines был почти в полном объёме одолжен из скрипта Google Analytics urchin.js. Потому все поисковики, которые определяет Google Analytics поддерживаются, также было добавлено несколько украинских и русских поисковиков.
Можно с легкостью добавлять свои любимые поисковики. Если Вы будете что-то добавлять, пишите это в комментариях, может быть, они пригодятся и другим.

southpark

Несколько слов об авторе southpark

Блог программиста для программистов. Секреты, новое в программировании, обсуждение и помощь в решении проблем.
http://php.southpark.com.ua/

Пока молчат

Leave A Reply

You must be logged in to post a comment.