Вытащить из ответа JSON либо XML данные и в виде текста подставить в переменную PHP
Есть JSON ответ такого типа:
{
"suggestions": [
{
"value": "ИП Полухин Владислав Владимирович",
"unrestricted_value": "ИП Полухин Владислав Владимирович",
"data": {
"citizenship": null,
"fio": {
"surname": "Полухин",
"name": "Владислав",
"patronymic": "Владимирович",
"gender": null,
"source": null,
"qc": null
},
"source": null,
"qc": null,
"hid": "a018ad1acb35584283306d0b0620e712015fe7e2a6ace704461973bbf2ad55b3",
"type": "INDIVIDUAL",
"state": {
"status": "ACTIVE",
"code": null,
"actuality_date": 1622073600000,
"registration_date": 1621900800000,
"liquidation_date": null
},
"opf": {
"type": "2014",
"code": "50102",
"full": "Индивидуальный предприниматель",
"short": "ИП"
},
"name": {
"full_with_opf": "Индивидуальный предприниматель Полухин Владислав Владимирович",
"short_with_opf": "ИП Полухин Владислав Владимирович",
"latin": null,
"full": "Полухин Владислав Владимирович",
"short": null
},
"inn": "246505184496",
"ogrn": "321246800066585",
"okpo": "2008056724",
"okato": "04401363000",
"oktmo": "04701000001",
"okogu": "4210015",
"okfs": "16",
"okved": "62.02",
"okveds": null,
"authorities": null,
"documents": null,
"licenses": null,
"finance": null,
"address": {
"value": "г Красноярск",
"unrestricted_value": "660000, Красноярский край, г Красноярск",
"data": {
"postal_code": "660000",
"country": "Россия",
"country_iso_code": "RU",
"federal_district": "Сибирский",
"region_fias_id": "db9c4f8b-b706-40e2-b2b4-d31b98dcd3d1",
"region_kladr_id": "2400000000000",
"region_iso_code": "RU-KYA",
"region_with_type": "Красноярский край",
"region_type": "край",
"region_type_full": "край",
"region": "Красноярский",
"area_fias_id": null,
"area_kladr_id": null,
"area_with_type": null,
"area_type": null,
"area_type_full": null,
"area": null,
"city_fias_id": "9b968c73-f4d4-4012-8da8-3dacd4d4c1bd",
"city_kladr_id": "2400000100000",
"city_with_type": "г Красноярск",
"city_type": "г",
"city_type_full": "город",
"city": "Красноярск",
"city_area": null,
"city_district_fias_id": null,
"city_district_kladr_id": null,
"city_district_with_type": null,
"city_district_type": null,
"city_district_type_full": null,
"city_district": null,
"settlement_fias_id": null,
"settlement_kladr_id": null,
"settlement_with_type": null,
"settlement_type": null,
"settlement_type_full": null,
"settlement": null,
"street_fias_id": null,
"street_kladr_id": null,
"street_with_type": null,
"street_type": null,
"street_type_full": null,
"street": null,
"stead_fias_id": null,
"stead_cadnum": null,
"stead_type": null,
"stead_type_full": null,
"stead": null,
"house_fias_id": null,
"house_kladr_id": null,
"house_cadnum": null,
"house_type": null,
"house_type_full": null,
"house": null,
"block_type": null,
"block_type_full": null,
"block": null,
"entrance": null,
"floor": null,
"flat_fias_id": null,
"flat_cadnum": null,
"flat_type": null,
"flat_type_full": null,
"flat": null,
"flat_area": null,
"square_meter_price": null,
"flat_price": null,
"postal_box": null,
"fias_id": "9b968c73-f4d4-4012-8da8-3dacd4d4c1bd",
"fias_code": "24000001000000000000000",
"fias_level": "4",
"fias_actuality_state": "0",
"kladr_id": "2400000100000",
"geoname_id": "1502026",
"capital_marker": "2",
"okato": "04401000000",
"oktmo": "04701000001",
"tax_office": "2400",
"tax_office_legal": "2400",
"timezone": "UTC+7",
"geo_lat": "56.0093879",
"geo_lon": "92.8524806",
"beltway_hit": null,
"beltway_distance": null,
"metro": null,
"divisions": {
"administrative": {
"area": null,
"city": {
"fias_id": "9b968c73-f4d4-4012-8da8-3dacd4d4c1bd",
"kladr_id": "2400000100000",
"type": "г",
"type_full": "город",
"name": "Красноярск",
"name_with_type": "г Красноярск"
},
"settlement": null,
"city_district": null
},
"municipal": null
},
"qc_geo": "4",
"qc_complete": null,
"qc_house": null,
"history_values": null,
"unparsed_parts": null,
"source": "КРАЙ КРАСНОЯРСКИЙ, Г. КРАСНОЯРСК",
"qc": "0"
}
},
"phones": null,
"emails": null,
"ogrn_date": 1621900800000,
"okved_type": "2014",
"employee_count": null
}
}
]
}
Необходим PHP-код, который вытащит из этого ответа JSON переменные full_with_opf , status и value в виде простого текста, которые потом можно использовать в переменных и оперировать с ними посредством PHP.
Ниже привожу код, как оно будет использоваться:
<?php
// STATUS полученный с JSON ответа
$status = "ACTIVE";
//Текст переменной также полученный из JSON ответа
$full_with_opf = "Индивидуальный предприниматель Полухин Владислав Владимирович";
// Текст переменной полученный из JSON ответа
$value = "ИП Полухин Владислав Владимирович";
//Говорит на странице, что по данному ИНН организации найден предприниматель и сообщает его данные
print_r($value);
// проверяет не закрыто ли ИП и позволяет продолжить заполнение регистрационной формы,
// либо делает что-то чтобы нельзя было продолжать регистрацию, поскольку запись о компании погашена в ФНС
if ($status != "ACTIVE"){
$start = "0"; }
// .... продолжение кода
?>
Заранее буду благодарен, особенно, если закомментируете код, чтобы можно было научиться, т.к. новичок. Прошу не судить строго за реализацию PHP. Решение нужно, как можно скорее.
Ответы (1 шт):
Автор решения: yspesny
→ Ссылка
XML
$data = new SimpleXMLElement($res);
$status = $data->suggestions[0]->data->state->status;
$full_with_opf = $data->suggestions[0]->data->name->full_with_opf;
$value = $data->suggestions[0]->value;
print $status. ' ' .$full_with_opf. '' .$value;
JSON
$json = json_decode($res, true);
$status = $json[0]['suggestions'][0]['data']['state']['status'];
$full_with_opf = $json[0]['suggestions'][0]['data']['name']['full_with_opf'];
$value = $json[0]['suggestions'][0]['value'];
Где 'res' результат запроса. Думаю комментарии излишлни