REST API позволяет с помощью простого запроса по HTTPS получить список областей, регионов используя базу данных Namaztimes.kz REST API позволяет получить данные в JSON формате. Все данные в кодировке UTF-8.
Отправьте GET запрос на
https://namaztimes.kz/ru/api/states[?id={country_id}]
API поддерживает запросы на HTTPS. Поддерживаемые форматы: json.
В {country_id} можно указывать один id страны. Список стран можно взять тут
Поэтому обязательно фильтруйте запросы от поисковых ботов. Это можно сделать простейшим регулярным выражением, вида:
$is_bot = preg_match(
"~(Google|Yahoo|Rambler|Bot|Yandex|Spider|Snoopy|Crawler|Finder|Mail|curl)~i",
$_SERVER['HTTP_USER_AGENT']
);
$geo = !$is_bot ? json_decode(file_get_contents('https://namaztimes.kz/ru/api/states?id={country_id}'), true) : [];
var_dump($geo);
Также следует кэшировать результаты запросов для пользователей, чтобы при посещении пользователем 100 страниц сайта, не делать 100 запросов к API.
GET https://namaztimes.kz/ru/api/states?id=99
Выводит информацию областей, регионов страны с {country_id} = 99. То есть Казахстан в формате JSON.
Результат обращения к API в JSON вызов всех стран
//GET https://namaztimes.kz/ru/api/states?id=99 { Akmola: "Акмолинская область", Aqtobe: "Актюбинская область", Almaty: "Алматинская область", Atyrau: "Атырауская область", East Kazakhstan: "Восточно-Казахстанская область", Dzhambul (Zhambyl): "Жамбылская область", West Kazakhstan: "Западно-Казахстанская область", Karaganda: "Карагандинская область", Qostanay: "Костанайская область", Kyzylorda: "Кызылординская область", Mangystau: "Мангистауская область", Pavlodar: "Павлодарская область", North Kazakhstan: "Северо-Казахстанская область", South Kazakhstan: "Туркестанская область" }
Описание полученных результатов обращения к API.
state: state_name
state - Идентификатор области, региона.
state_name - Имя области, региона.