+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Сайты торговых сетей, предприятий с представительствами и филиалами, бюро услуг и почтовые службы нуждаются в справочнике адресов регионов и городов России. Найти и забить вручную? Даже если положить 5 минут на 1 позицию, всего на 1100 населенных пунктов получится 5500 минут, 92 часа и 11 восьмичасовых рабочих дней. Нет, это не вариант.

Поэтому лучше использовать справочник IP-адресов городов России cidr_ru_block.txt, скачав его на сайте ipgeobase.ru

1. Скачаем архив

На странице архивов ipgeobase.ru скачаем файл db_files.zip. Распакуем архив.

2. Загрузим архив в модуль статистики «Битрикс»

Распакованный из архива файл cidr_ru_block.txt загрузим в «Битрикс» по адресу bitrix/modules/statistic/ip2country

3. Используем мастер создания индексов IP

Запустим мастер по адресу /bitrix/admin/wizard_list.php?lang=ru

Зададим мастеру в качестве источника файл cidr_ru_block.txt и режим создания индекса по IP-адресу для конкретной страны и города.

Через класс CCity

CModule::IncludeModule('statistic');
$arOrder = array('REGION_NAME' => 'ASC');
$arFilter = array('COUNTRY_ID' => 'RU');
$res = CCity::GetList($arOrder, $arFilter);
while ($el = $res->Fetch())
   print_r($el);



Получаем массив населенных пунктов

Array
(
    [CITY_ID] => 51
    [COUNTRY_ID] => RU
    [COUNTRY_SHORT_NAME] => RUS
    [COUNTRY_NAME] => RUSSIAN FEDERATION
    [REGION_NAME] => Алтайский край
    [CITY_NAME] => Барнаул
)

Array
(
    [CITY_ID] => 353
    [COUNTRY_ID] => RU
    [COUNTRY_SHORT_NAME] => RUS
    [COUNTRY_NAME] => RUSSIAN FEDERATION
    [REGION_NAME] => Алтайский край
    [CITY_NAME] => Заринск
)

Array
(
    [CITY_ID] => 265
    [COUNTRY_ID] => RU
    [COUNTRY_SHORT_NAME] => RUS
    [COUNTRY_NAME] => RUSSIAN FEDERATION
    [REGION_NAME] => Алтайский край
    [CITY_NAME] => Бийск
)
....
Array
(
    [CITY_ID] => 477
    [COUNTRY_ID] => RU
    [COUNTRY_SHORT_NAME] => RUS
    [COUNTRY_NAME] => RUSSIAN FEDERATION
    [REGION_NAME] => Ярославская область
    [CITY_NAME] => Гаврилов-ям
)

Array
(
    [CITY_ID] => 585
    [COUNTRY_ID] => RU
    [COUNTRY_SHORT_NAME] => RUS
    [COUNTRY_NAME] => RUSSIAN FEDERATION
    [REGION_NAME] => Ярославская область
    [CITY_NAME] => Мышкин
)



И вызываем данные из него при помощи $_SESSION['SESS_CITY_ID']

if ($_SESSION['SESS_CITY_ID'] > 0)
{
   $res = CCity::GetList(
      false,
      array('CITY_ID' => $_SESSION['SESS_CITY_ID'])
   );
   if ($el = $res->Fetch())
      print_r($el);
}




Готово!

Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA