Скрипт возвращает запрос по которому был переход на ваш сайт со всех известных поисковиков
Добавил: Amro Дата: 07.12.2011 16:14
	
Добавил: Amro Дата: 07.12.2011 16:14
Скрипт возвращает запрос по которому был переход на ваш сайт со всех известных поисковиков, поисковик и страницу выдачи на которой есть ваш запрос. (подерживаются поисковики yandex, google, rambler, yahoo.com, go.mail.ru, aport.ru, nigma.ru, search.com, live.com, msn.com, aol.com)
Описание скрипта: Вернет через символ | следующие параметры: (например так google|термины бальных танцев|21|20)
- Поисковая система с которой пришли на ваш сайт
 - Запрос по которому пришли на ваш сайт
 - Страница выдачи (в зависимости от поисковика либо порядковый номер первого результата на странице, т.е. если выдается по 10 результатов на странице, то 41 означает 4 страницу выдачи).
 - Кол-во результатов на странице (если значение по умолчание не менялось будет пустым)
 
Этот запрос очень удобно использовать для:
- ведения статистики
 - выдачи полезной информации пользователю (например, при определенном запросе перемещать на нужную страницы или выводить подсказку)
 - показывать в поисковой системе сайта запрос пользователя
 - и т.д.
 
Вызов скрипта: без параметров, например так echo getKeyWords();
Код:
# Возвращает запросы со всех поисковиков  
function getKeyWords(){  
  $q = $_SERVER['HTTP_REFERER'];  
  if(strlen($q)>0){  
    if(strpos($q,'yandex')>0)  
      return getKeyWord($q,'yandex.ru','text','p','numdoc');  
    else if(strpos($q,'google')>0)  
      return getKeyWord($q,'google','q','start','num');  
    else if(strpos($q,'rambler.ru')>0)  
      return getKeyWord($q,'rambler.ru','query','page','');  
    else if(strpos($q,'yahoo.com')>0)  
      return getKeyWord($q,'yahoo.com','p','b','n');  
    else if(strpos($q,'go.mail.ru')>0)  
      return getKeyWord($q,'go.mail.ru','q','sf','');  
    else if(strpos($q,'aport.ru')>0)  
      return getKeyWord($q,'aport.ru','r','p','');  
    else if(strpos($q,'nigma.ru')>0)  
      return getKeyWord($q,'nigma.ru','s','startpos','');  
    else if(strpos($q,'search.com')>0)  
      return getKeyWord($q,'search.com','q','nav','');  
    else if(strpos($q,'live.com')>0)  
      return getKeyWord($q,'live.com','q','first','');  
    else if(strpos($q,'search.msn.com')>0)  
      return getKeyWord($q,'search.msn.com','q','first','');  
    else if(strpos($q,'search.aol.com')>0)  
      return getKeyWord($q,'search.aol.com','query','page','');    
    else  
      return '';  
  }  
}  
# Возвращает запрос  
function getKeyWord($q,$find,$word,$page,$num){  
       $tmp = getParams($q,$word);  
       if(strlen($tmp)>0){  
           return $find.'|'.$tmp.'|'.getParams($q,$page).'|'.getPara  ms($q,$num);  
       }  
       return '';  
}  
# Возвращает параметр из HTTP_REFERER  
function getParams($q,$prm){  
       if(strlen($prm) == 0) return '';  
       $i = strpos($q,'&'.trim($prm).'=');  
       if($i == 0) $i = strpos($q,'?'.trim($prm).'=');         
       if($i > 0){  
         $tmp = substr($q,$i+strlen($prm)+2);  
         if(strpos($tmp,'&')>0) $tmp = substr($tmp,0,strpos($tmp,'&'));  
         $tmp = getStringUtf(urldecode($tmp));         
         return $tmp;           
       }  
       return '';  
} Взято с форума античат
Помню нечто-типа такого мутил для реферов в Seditio.