Данные в переменную php из ссылки массива json?

usergeyv

Знаток
Регистрация
5 Июл 2013
Сообщения
152
Реакции
25
С другими подобными было просто:
PHP:
$json = file_get_contents('ссылка');
if($json) {
$info = json_decode($json, true);
$data = $info['0'];
echo $hd = $data['id'];

}
показывало id, а как применит код выше к такому массиву:
Код:
{"total":1,"results":{"1348":{"id":1348,"kp_id":444,"imdb":"tt0103064","ru_title":"Терминатор 2: Судный день","title":"Terminator 2: Judgment Day","release_date":"1991-07-01","inserted":"2017-01-19 15:55:08","updated":"2017-01-19 15:55:08","media":{"3423":{"source":"bd","active":1,"runtime":9205,"screens":["http:\/\/cdn.videoframe.online\/movies\/dd03454e46dfeab382f7c950fc0ddc71dd4718bc\/2e02dd3d2f803ef0ed266abb56176ae6:2017112200:139615435\/thumb001.jpg","http:\/\/cdn.videoframe.online\/movies\/dd03454e46dfeab382f7c950fc0ddc71dd4718bc\/2e02dd3d2f803ef0ed266abb56176ae6:2017112200:139615435\/thumb002.jpg","http:\/\/cdn.videoframe.online\/movies\/dd03454e46dfeab382f7c950fc0ddc71dd4718bc\/2e02dd3d2f803ef0ed266abb56176ae6:2017112200:139615435\/thumb003.jpg","http:\/\/cdn.videoframe.online\/movies\/dd03454e46dfeab382f7c950fc0ddc71dd4718bc\/2e02dd3d2f803ef0ed266abb56176ae6:2017112200:139615435\/thumb004.jpg","http:\/\/cdn.videoframe.online\/movies\/dd03454e46dfeab382f7c950fc0ddc71dd4718bc\/2e02dd3d2f803ef0ed266abb56176ae6:2017112200:139615435\/thumb005.jpg"],"path":"https:\/\/videoframe.online\/?kp_id=444¬ranslate&trans=6","translation":"Профессиональный (многоголосый закадровый)"}},"path":"https:\/\/videoframe.online\/kp\/444\/"}},"next":null}

Нужно, например , значения kp_id вставить в переменную $hd
 
Последнее редактирование:
Выложи ссылку, а то так не очень понятно.
Может так :
echo $hd = $data->results->kp_id;
<-------------- добавлено через 335 сек. -------------->
json надо как объект обрабатывать , а ты уже массив хочешь с него $info['0'].
Без ссылки только гадать
 
PHP:
$info = json_decode($json, true);
$res = reset($info['results']);
$res = reset($res['media']);
$hd = $res['screens'][0];// 0, 1, 2, ..., n
echo $hd;
 
Выложи ссылку, а то так не очень понятно.
Может так :
echo $hd = $data->results->kp_id;
Не работает
<-------------- добавлено через 83 сек. -------------->
там мой токен, светить не хочу
<-------------- добавлено через 2263 сек. -------------->
Ответ по ссылке с которой этот код работает:
Код:
[
  {
    "title_ru": "Джерри Магуайер",
    "title_en": "Jerri Maguire",
    "year": 1996,
    "kinopoisk_id": 4561,
    "world_art_id": null,
    "pornolab_id": null,
    "token": "c963de22bf697c3e",
    "type": "movie",
    "camrip": false,
    "source_type": null,
    "instream_ads": false,
    "directors_version": false,
    "iframe_url": "http://moonwalk.cc/video/c963de22bf697c3e/iframe",
    "translator": "Дубляж",
    "translator_id": 21,
    "added_at": "2017-06-14 03:44:15",
    "category": null,
    "block":  {
    "blocked_at": null,
    "block_ru": false,
    "block_ua": false
     }
  }
]
А как применить код для ответа по ссылки с содержимым:
Код:
{"total":1,"results":{"1348":{"id":1348,"kp_id":444,"imdb":"tt0103064","ru_title":"Терминатор 2: Судный день","title":"Terminator 2: Judgment Day","release_date":"1991-07-01","inserted":"2017-01-19 15:55:08","updated":"2017-01-19 15:55:08","media":{"3423":{"source":"bd","active":1,"runtime":9205,"screens":["http:\/\/cdn.videoframe.online\/movies\/dd03454e46dfeab382f7c950fc0ddc71dd4718bc\/2e02dd3d2f803ef0ed266abb56176ae6:2017112200:139615435\/thumb001.jpg","http:\/\/cdn.videoframe.online\/movies\/dd03454e46dfeab382f7c950fc0ddc71dd4718bc\/2e02dd3d2f803ef0ed266abb56176ae6:2017112200:139615435\/thumb002.jpg","http:\/\/cdn.videoframe.online\/movies\/dd03454e46dfeab382f7c950fc0ddc71dd4718bc\/2e02dd3d2f803ef0ed266abb56176ae6:2017112200:139615435\/thumb003.jpg","http:\/\/cdn.videoframe.online\/movies\/dd03454e46dfeab382f7c950fc0ddc71dd4718bc\/2e02dd3d2f803ef0ed266abb56176ae6:2017112200:139615435\/thumb004.jpg","http:\/\/cdn.videoframe.online\/movies\/dd03454e46dfeab382f7c950fc0ddc71dd4718bc\/2e02dd3d2f803ef0ed266abb56176ae6:2017112200:139615435\/thumb005.jpg"],"path":"https:\/\/videoframe.online\/?kp_id=444¬ranslate&trans=6","translation":"Профессиональный (многоголосый закадровый)"}},"path":"https:\/\/videoframe.online\/kp\/444\/"}},"next":null}

Так думаю, будет проще понять что я хочу, может есть и другие решения задачи, прошу показать код, заранее спасибо за ответы
<-------------- добавлено через 216 сек. -------------->
PHP:
$info = json_decode($json, true);
$hd = $info['results']['1348']['kp_id'];
echo $hd;
Работает, но ['1348'] меняется, как быть?
<-------------- добавлено через 298 сек. -------------->
как отсеять(упустить) значения?
<-------------- добавлено через 714 сек. -------------->
PHP:
$info = json_decode($json, true);
$res = reset($info['results']);
$hd = $res['kp_id'];
echo $hd;
Красавчик:sun:
<-------------- добавлено через 1720 сек. -------------->
PHP:
$info = json_decode($json, true);
$res = reset($info['results']);
$hd = $res['kp_id'];
echo $hd;
А как media прикрутить:(
<-------------- добавлено через 277 сек. -------------->
screens
<-------------- добавлено через 1312 сек. -------------->
PHP:
$info = json_decode($json, true);
$res = reset($info['results']);
$res = reset($res['media']);
$hd = $res['screens'][0];// 0, 1, 2, ..., n
echo $hd;
Спасибо за оперативность;)
 
Если таких json блоков будет несколько в ответе, то можно перебрать весь ответ циклом foreach
 
добрее json = file_get_contents('ссылка');
if($json) {
$info = json_decode($json, f,,lse);
$data = $info['0'];

не так ли?
 
Назад
Сверху