Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выделить запрос из строки запроса
Форумы портала PHP.SU » PHP » Регулярные выражения » Выделить запрос из строки запроса

Страниц (1): [1]
 

1. Batyabest - 19 Августа, 2014 - 19:28:28 - перейти к сообщению
Здравствуйте.
Помогите мне разобраться со скриптом.
Хочу определить, с какого поискового запроса пришел пользователь на сайт.

На данный момент скрипт определяет Поисковую систему, но не определяет саму фразу поисковую.

Через консоль выяснил, что есть так называемый URL запроса вида
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://mc.yandex.ru/clmap/731962?page-url=http%3A%2F%2Fyandex.ru%2Fyandsearch%3Flr%3D192%26clid%3D1923017%26text%3Dnaveka33.ru%26csg%3D252%252C2023%252C11%252C11%252C0%252C0%252C0&pointer-click=rn%3A161381068%3Ax%3A42597%3Ay%3A40676%3At%3A10600%3Ap%3A%3BHAAAA2AAA3AA2A1&browser-info=rqnl%3A1%3Ast%3A1408465348


Как мне отсюда выделить запрос, он видимо пишется после text. Потому как я набирал naveka33.ru

На всякий случай сам скрипт определения поискового запроса:
PHP:
скопировать код в буфер обмена
  1. // определяем referer
  2.  
  3. $referer = $_SERVER['HTTP_REFERER'];
  4.  
  5. // ищем в referer адреса поисковиков и присваиваем
  6. // переменным
  7. // $search и $crawler соответствующие значения
  8.  
  9. if (stristr($referer, 'yandex.ru') || stristr($referer, 'yandex.ru')) {
  10.     $search = 'text=';
  11.     $crawler = 'Yandex';
  12. }
  13. if (stristr($referer, 'rambler.ru')) {
  14.     $search = 'words=';
  15.     $crawler = 'Rambler';
  16. }
  17. if (stristr($referer, 'google.com') || stristr($referer, 'google.ru')) {
  18.     $search = 'q=';
  19.     $crawler = 'Google';
  20. }
  21.  
  22. // если посетитель пришел с поисковика то выполняем // следующий код
  23.  
  24. if (isset($crawler)) {
  25.  
  26. // здесь мы приводим referer в понятный для человека // вид
  27.  
  28.     $phrase = urldecode($referer);
  29.  
  30. // ищем ключевое слово в referer
  31.  
  32.     eregi($search.'([^&]*)', $phrase.'&', $phrase2);
  33.     $phrase2 = $phrase2[1];
  34.  
  35.     setcookie("searchrobot",$crawler);
  36.     setcookie("searchtext",$phrase2);
  37.  
  38. }
  39.  
  40. // Выведем для проверки
  41. echo 'robot='.@$_COOKIE['searchrobot'].'<br>';
  42. echo 'search_text='.@$_COOKIE['searchtext'];
2. Мелкий - 19 Августа, 2014 - 20:47:38 - перейти к сообщению
Оно разве нынче возможно?
http://www[dot]searchengines[dot]ru/news[dot][dot][dot]hifruet_100[dot]html
http://webmaster[dot]ya[dot]ru/replies[dot]xml?item_no=19042
3. Batyabest - 20 Августа, 2014 - 13:37:46 - перейти к сообщению
Ну вот надежда умирает последней. А как же собственно сами ПС отслеживают с каких запросов пришли? Хочется реализовать алгоритм мультилендинга. В зависимости от запроса отображать нужную инфу. Может кто видел примеры реализаций, тоже буду благодарен.
4. Мелкий - 20 Августа, 2014 - 13:51:57 - перейти к сообщению
Batyabest пишет:
В зависимости от запроса отображать нужную инфу.

Бан от поисковика словить захотелось?

Batyabest пишет:
А как же собственно сами ПС отслеживают с каких запросов пришли?

Они-то по собственным id могут найти у себя же эти данные.
5. Batyabest - 31 Августа, 2014 - 09:11:19 - перейти к сообщению
Мелкий пишет:
Бан от поисковика словить захотелось?

А как же реализуется алгоритм мультилендинга?

 

Powered by ExBB FM 1.0 RC1