Ниже приведен весь мой код для разбора URL REST API и моя попытка сделать то, что мне нужно. Что мне нужно сделать, так это сообщить мне идентификатор подписки (в приведенном ниже примере это «7»). Но каждый раз, когда я звоню, он просто возвращает дату истечения срока действия. Проблема в том, что «7» всегда будет отличаться в зависимости от клиента и пакета, который они выбрали. Поэтому я должен иметь возможность определить, является ли это «7», «8» или «232», и вывести его или присвоить переменной. Как бы я пошел об этом? Я не могу понять это.
CURL и JSON Decode
$url = "HIDDEN";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 4);
$json = curl_exec($ch);
if(!$json) {
echo curl_error($ch);
}
curl_close($ch);
echo "<pre>";
print_r(json_decode($json));
echo "</pre>";
$obj = json_decode($json);
echo $obj->{'name_l'};
echo "<br />";
echo $obj->{'subscriptions'}->{7};
Вывод кода
stdClass Object
(
[ok] => 1
[user_id] => 3
[name] => Натан Браун
[name_f] => Натан
[name_l] => Браун
[email] => [email protected]
[логин] => имя пользователя
[подписки] => объект stdClass
(
[7] => 2014-10-03
)
)
Brown
2014-10-03
Не смущайся всем пухом. Вы просто хотите получить первый ключ массива (аналогично, вы можете получить текущая стоимость):
reset($obj->subscriptions); // Just to be safe
$foo = key($obj->subscriptions); // 7
$bar = current($obj->subscriptions); // 2014-10-03
Других решений пока нет …