WebDix
Выпуск #17 | 04 октября 2008Выпуск #17 | 04 октября 2008
Колонка редактора
Веб-дизайн
Раскрутка
Заработок
Программирование
Уроки Photoshop
Уроки Flash
Софт
Юмор
Быстрый переход
WebDix › Выпуск #17 › Программирование

100 последних запросов с поисковиков (php)

Автор: Дмитрий Смирнов
Сайт: spectator.ru


Народ регулярно спрашивает, как сделаны поисковики, как будто это что-то сложное. На самом деле это на редкость примитивно, пардон, до гениального просто. Поисковики — такие же сайты, как и все остальные (сюрприз, да?), поэтому если к вам зашли с поисковика, адрес, с которого зашли, тобишь реферер, легко отслеживается.

Сначала — находим УРЛ, с которого к вам зашли на сайт:

<?php
$url = urldecode($HTTP_REFERER);

Проверяем: а) есть ли вообще реферер, б) не является ли он внутренним, то есть с вашего же сайта (вместо spectator.ru, разумеется, в вашем случае треба подставить что-то другое).

if (($url!='') and (!stristr ($url, 'spectator.ru')));

После чего проверяем, принадлежит ли адрес, с которого пришли, к какому-нибудь поисковику:

if ((stristr($url, 'yandpage')) or (stristr($url, 'yandsearch'))) { $sw = 'text='; $engine = 'Y'; }
if(stristr($url, 'http://search.rambler.ru/')) { $sw = 'words='; $engine = 'R'; }
if(stristr($url, 'http://sm.aport.ru/')) { $sw='r='; $engine = 'A'; }
if(stristr($url, 'google.')) { $sw='q='; $engine = 'G'; }
if(stristr($url, 'google.yahoo.com')) { $sw='p='; $engine = 'H'; }

Добавьте поисковик(и) по вкусу сами. Обратите внимание, здесь мы убиваем трех зайцев: проверяем, пришли ли люди с поисковика, определяем, с какого ($engine) и устанавливаем соответствующий для данного поисковика параметр $sw. $sw — это кусок текста в УРЛЕ, после которого, собственно, и идет текст запроса, смотрите пример выше: для Яндекса текст запроса идет после «text=».

И тут, наконец, проверяем, пришли ли с поисковика…

if(isset($engine));

И если пришли, то:

$url2=urldecode($url);
if (stristr($url, 'yandpage')) {$url2=convert_cyr_string ($url2, k, w);}

Если пришли с Яндекса, то перекодируем УРЛ (он почему-то всегда в КОИ).

eregi ($sw.'([^&]*)', $url2.'&', $url2);
$url2=$url2[1];

Именно в этих 2-х строчках мы и вычленяем запрос, то есть переменная $url2 теперь содержит текст запроса в человеческом виде.

И все, собственно. Дальше все очень просто. У меня, например, это все пишется в простой файл вот в таком виде:

$fullfile='[ <small><b>'.$engine.'</b></small> ] :: <a href='.$HTTP_REFERER.'>'.$url2.'</a>  :: попал <a href='.$REQUEST_URI.'>сюда</a>  <small> [ '.date('d.m.Y H:i').' ]</small><br>\n';

Дальше не забыть поставить:

else:

И тут обработчик тех реферов, которые были НЕ с поисковых систем, после чего, конечно же идёт:

endif; ?>

И после недолгих мучений скрипт смотрится примерно вот так. Как видите, все очень просто.





« Форекс для начинающихСодержаниеГенерация meta name=keywords »
Copyright © 2007 RusForumz.com. Дизайн иконок - Mormegil.

Главный редактор: Nikitar. Редакторы: Rammstein, Dr.onX, Exact. Корректор: Sprint2000 Общий дизайн - Nikitar
Перепечатка материалов запрещена.

По поводу использования материалов обращайтесь на e-mail
Журнал WebDix («Это веб-диз, детка!»), 2006-2008.
Сайт журнала: webdix.ru · форум: rusforumz.com
Об архиве
Рейтинг Old-Web