Скрипт возвращает запрос по которому был переход на ваш сайт со всех известных поисковиков
Добавил: 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.