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 - Имя области, региона.