Геотаргетинг. Новый php класс для работы с базой ipgeobase.ru

Геотаргетинг. Новый php класс

В этом посте еще той весной я публиковал небольшую функцию предназначенную для быстрого определения города посетителя при помощи сервиса ipgeobase.ru
С тех пор уже представленный мной способ и скрипт перестали работать. Поэтому я решил написать другой, уже более универсальный php класс для работы с базой ipgeobase.

Не буду пост разбавлять водой и перейду сразу к основной части того, зачем я начал писать данный пост:
PHP класс Geo (файл geo.zip ~5Кб)
Выдержка из readme архива:
скрипт представлет собой готовый php класс для работы с базой http://ipgeobase.ru

скрипт не требует установки.
требования очень скудные

  • curl – для подключения к серверу ipgeobase.ru
  • simplexml – желательно, но не обязательно. для парсинга полученного XML. Однако при отсутсвии этого расширения данные обрабатываются вспомогательным методом
  • iconv – для изменения кодировки, если Ваш сайт не на windows-1251

Инструкции и комментарии расписаны по всему скрипту. Особенно подробно прокомметирован примерный файл index.php
Также код самого класса geo.php подробно описан при помощи phpDoc

Вот пример использования скрипта:


<?php
    header('Content-type: text/html; charset=UTF-8');
 
 
	include('geo.php');
    $o = array(); // опции. необзятательно.
    $o['charset'] = 'utf-8'; // нужно указать требуемую кодировку, если она отличается от windows-1251
 
    $geo = new Geo($o); // запускаем класс
 
    // этот метод позволяет получить все данные по ip в виде массива.
    // массив имеет ключи 'inetnum', 'country', 'city', 'region', 'district', 'lat', 'lng'
    $data = $geo->get_value(); 
 
    // если нужен какой то отдельный параметр, передаем его в функцию в виде первого значения
    $data = $geo->get_value('city'); // например, вернет название города
    # $data = $geo->get_value('country'); // вернет название страны
    # $data = $geo->get_value('region'); // вернет название региона
    # $data = $geo->get_value('district'); // вернет название района
    # lat - географическая ширина и lng - долгота
    # inetnum - диапазон ip адресов, в который входит проверяемый ip адрес
    
    // чтобы использовать кеширование нужно в функцию передать второй параметр - true или false
    # пример 
    $data = $geo->get_value('city', true); 
    // если true, то данные о городе пользователя сохранятся в куки браузера
    // в этом случае повторный запрос для проверки происходить не будет. 
    // это рекомендуется и поэтому по-умолчанию кешеривание включено
    # пример 
    $data = $geo->get_value('city', false);
    // если false, то данные каждый раз будут запрашиваться с сервера ipgeobase    
    //также кеширование используется и для других параметров   
 
 
    // показ информации в зависимости от города
    # пример
    $city = $geo->get_value('city', true);
    if($city == 'Казань')
    {
        echo 'Наш телефон для Казани 123123123';
    }elseif($city == 'Москва')
    {
        echo 'Телефон для Москвы 98989898';
    }elseif($city == 'Тюмень')
    {
        echo 'Телефон для Тюмени 65656565';
    }else
    {
        echo 'Мы не смогли определить Ваш город. Позвоните на в скайп UserSkype или напишите на email';
    }
 
    // также данный класс можно использовать для получения и проверки валидности реального ip адреса посетителя
 
    $ip = $geo->get_ip(); // получаем ip адрес
    echo $ip .'<br />';
 
    if($geo->is_valid_ip($ip))
    {
        echo 'IP адрес валиден';
    }else
    {
        echo 'IP адрес не валиден';
    }
 
?>

Если кто-либо не в курсе, что такое геотаргетинг и для чего он нужен рекомендую прочитать пост Геотаргетинг. Вывод информации в зависимости от города (IP) посетителя.

Если остались вопросы или есть предложения, просьба писать комментарии к этому посту. Всем спасибо за внимание :)


Традиционный постовой:

Если заботитесь о своем здоровье и любите фитнес, тогда предлагаем Вашему вниманию сайт: кунцево фитнес. Этой сайт поможет определиться с выбором фитнес-клуба для жителей города Кунцево. Будьте активными, успешными и здоровыми!

Эта запись была опубликована в рубрике PHP кусочки. Добавить в закладки ссылку.

1 в ответ на Геотаргетинг. Новый php класс для работы с базой ipgeobase.ru:

  1. oleg пишет:

    спасибо, очень классный пост

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

*

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">