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