Вы сейчас здесь
«Облако» тэгов
link, small, tagless, tiny, 2003, big, 2008, 2010, январь, декабрь, сентябрь, 2001, 2004, 2002, август, апрель, март, июль, 2009, игры, октябрь, май, июнь, февраль, 2007, ноябрь, img, 2011, quote, wow, huge, блоги, кино, игровой дизайн, ребенок, половой вопрос, технологии, вебдев, lytdybr, фразы, живой журнал, жизнь, язык, яндекс, php, 2006, людишки, 2005, поисковики, software, video, inglish, 2000, смишно, диалоги, музыка, книги, культ личности, дейтинг, политика, интернет, 1999, rss, контент, flash, я, авторские проекты, реклама, прон, next-gen mmo, ореховые скорлупки, сми, js, программирование, fight club, register, социгры, спам, english reviews, американас, потребление, беллетристика, идеи, мое величие, iphone, usability, пидорасты, battle.net, lifestyle, starcraft 2, Тёма, соционика, spectator.ru, британские ученые, развитие, Масква, бабло, литература, фото, mobile, work, болкман, титаны, hard, hobius, mysql, интеллектуальный юмор, хостинг, blogowar.ru, графика, SEO, blogowar, magic, журналистика, злоба дня, религия, стартапы, social, tf2, цитаты, gzip, warhammer, браузеры, велосипед, киви, медикаментоз, общество, оговорки, html, воспитание, мифы, паранойа, письма в редакцию, учеба, 1998, soft, soviet, twdnkumus, глянцевые журналы, монетизация, норкотики, сайты, сиськи, типографика, тьюринг, mongodb, дизайн, железо, живут же люди, лолвут, плагиат, твиттер, тренд, 2012, about, бабушки, вещи, видео, зомбоящик, игрушки, социопатия,
Персональное
об авторе и сайте
мойкруг (резюме)
на G+
порнотумблер (rss)
инстаграм (хипстерские фото)

facebook
twitter

skype: acerbial
gtalk: dmitry.smirnov


C любовью к людишкам™,
♥ 1998 - 2013.

powered by mongodb.



Анализ запросов

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

Поисковики — такие же сайты, как и все остальные (сюрприз, да), поэтому если к вам зашли с поисковика, адрес, с которого зашли, тобишь реферер, легко отслеживается. При этом текст запроса уже содержится в УРЛЕ, с которого к вам зашли, например: http://yandex.ru/yandsearch?text=поиск+на+php. (Правда, часто текст... как это по-русски-то?... URL-encoded, то есть выглядит вот этак: %EF%EE%E8%F1%EA, но это не проблема, у нас есть функция urldecode...).

Собственно, дальше все просто:

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

<?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); # just in case
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 rel=nofollow href=http://spectator.ru/'.$HTTP_REFERER.'>'.$url2.'</a> :: попал <a rel=nofollow href=http://spectator.ru/'.$REQUEST_URI.'>сюда</a> <small> [ '.date('d.m.Y H:i').' ]</small><br>n';

А выглядит все вот так: spectator.ru/yandex

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

else:

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

endif; ?>

...кончается скрипт...

Слава КПСС!

10 лет назад
0
Привет, Anonymous! Чтобы оставлять комментарии, надо авторизоваться.