29
Геотаргетинг на вашем сайте
Категория: (РУКОВОДСТВА, опыты) Автор: Борис Бритва Опубликовано: 29-11-2008
Совсем недавно писал,что мол ищу простую штуку для изменения контента страницы в зависимости от города посетителя. Как это часто бывает, получилось сделать самому. Кривовато, но работает.
Начнем с того, что определимся, где же мы будем брать данные. Я остановился на http://ipgeobase.ru. У них там выкладываются базы с привязками IP адресов к городам и регионам России, что для начала сойдет. А мне так и вовсе достаточно. Вариантов, как это использовать я увидел ровно две штуки: качать базы и шурудить непосредственно в них или парсить выдачу прямо с их сайта. По причине абсолютной дебильности в программировании и всяких подобных штуках решил, что парсить будет проще.
И так, по шагам получается примерно следующее: получить адрес посетителя, сделать запрос с этом адресом на сайт http://ipgeobase.ru, получить результат в переменную, достать название города и банальным сравнением if .. else отправить в браузер то, что нужно в зависимости от. Вот так вот незатейливо на самом то деле ;)
Функция возвращающая название города по IP адресу:
function ip_data($ip)
{
$content=iconv(”windows-1251″,”utf-8″,file_get_contents(”http://ipgeobase.ru/cgi-bin/Search.cgi?address=$ip”));// Тут суть в следующем: берем страничку с сайта используя в качестве аргумента наш нужный нам IP адрес, перекодируем их кодировку в нашу (в моем случае win на utf8 и результат в переменную.
preg_match(’|>Город<\/td>(.*?)<\/tr>|si’, $content, $city);
return $city = trim(strip_tags($city[1]));// Здесь же из переменной содержащей всю страницу с нужной нам информацией достаем только название города. Как это делается я не очень понимаю, эти строчки мне подсказали ;) И возвращаем это значение из функции.
}
Как использовать? В качестве примера возьмем как это сделано у мну:
$final=ip_data($_SERVER[’REMOTE_ADDR’]);
// Тут достаем IP адрес посетителя и отправляем в описанную выше функцию, результат получаем в переменную final.
if ($final==”Москва”)
{
echo “Вы из Москвы, вот вам рекламный баннер!”;
} else {
echo “Всем остальным - контекстная реклама!”;
}
Работать это будет конечно только в том случае, если на сайте источнике ничего не изменится. В плане верстки там или дизайна. На разработку такую меня натолкнул еще и пост один, в котором подобная идея была реализована. Только вот видимо дизайн с тех времен сменился и нифига этот пример не работал, да и строчек кода надо признать там было сильно больше.
Кто сечет в программировании на php, прошу в меня помидорками не кидать. Знаю, что криво, но результат меня устраивает. А кому понравилось решение и/или даже использовал у себя - мне будет оч приятно если поставите ссылочку.
ps^ Палю тему: если продумать схему, привлечь программера толкового - можно замутить много интересных сервисов. Как для себя, так и для других вебмастеров.
