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

Bully

Новичок
Получение строки поиска, введенной на поисковом сервере

Хочу сделать статистику по поисковым запросам для своих сайтов, то есть сохранять те запросы, которые ввели посетители поисковой системы и получили ссылку на мой сайт. Получить эту строку средствами PHP можно из переменной $_SERVER["HTTP_REFERER"] (вроде, больше неоткуда). Например для Яндекса строка выглядит так: www.yandex.ru/yandsearch?text=_поисковый_запрос_&stype=www а для Google примерно так: www.google.com/search?ie=UTF-8&hl=ru&q=%70%68%70%69%6E%66%6F%20%52%45%4D%4F%54

В связи с этим вопрос: есть ли в свободном доступе скрипты для получения поискового запроса, учитывающие популярные поисковики, или, возможно, кто-то предложит более элегантное решение?
 

Marquis

Новичок
Что мешает самому сделать шаблоны под наиболее популярные поисковики и уже обрабатывать по имеющемуся шаблону строку $_SERVER["HTTP_REFERER"] ?

ps. в помощь url
 

WP

^_^
Решение элементарное, вот например из моего двига:
PHP:
//...
 function register_referer()
 {  // yandex, google, msn, mail, aport, rambler, yahoo, km, altavista
  require_once CORE_PATH.'core-charset-detect.php';
  if (!is_empty($ref = gpcvar_str($_SERVER['HTTP_REFERER'])))
  {
   $uri = parse_url($ref);
   $host = isset($uri['host'])?strtolower($uri['host']):'';
   parse_str($a = gpcvar_str($uri['query']),$query);
   if (preg_match('~\.yandex\.ru$~',$host)) {$search_query = gpcvar_str($query['text']);}
   elseif (preg_match('~^(www\.google\.|search\..*?\.msn.com)$~',$host)
			or $host == 'www.altavista.com'
			or $host == 'go.mail.ru'
   ) {$search_query = gpcvar_str($query['q']);}
   elseif ($host == 'sm.aport.ru') {$search_query = gpcvar_str($query['r']);}
   elseif ($host == 'www.rambler.ru') {$search_query = gpcvar_str($query['words']);}
   elseif ($host == 'go.km.ru') {$search_query = gpcvar_str($query['sq']);}
   elseif ($host == 'search.yahoo.com') {$search_query = gpcvar_str($query['p']);}
   else {$search_query = '';}
   $search_query = charset_x_win($search_query);
   $this->sql->insert(SQL_TBLPREFIX.'webstat_referers',array(
    'url'			=> array($ref,FIELDTYPE_CHAR,256),
    'host'			=> array($host,FIELDTYPE_CHAR,50),
    'search_query'	=> array($search_query,FIELDTYPE_CHAR,50)
   ));
  }
 }
//...
 
Сверху