Извлечение объекта JSON из URL

#php #arrays #json

#php #массивы #json

Вопрос:

У меня есть URL-адрес, который возвращает объект JSON, подобный этому:

 {
  "player": {
    "revenue_track": "https://mc.yandex.ru/watch/56313682",
    "opt_sharing": false,
    "revenue": "https://ddmax20.xyz/scripts/ff20/hi/35/68/boa/",
    "css_ctsize": "13",
    "css_tsrail": "rgba(255, 255, 255, 0.3)",
    "opt_nodefault": false,
    "resume_enable": false,
    "opt_quality": true,
    "css_cttext": "#ffffff",
    "ads_vast": true,
    "adb_enable": false,
    "opt_forceposter": false,
    "opt_parameter": false,
    "opt_caption": true,
    "css_menu": "#333333",
    "logo_position": "top-right",
    "ads_adult": false,
    "opt_vr": false,
    "css_ctopacity": "40",
    "opt_download": false,
    "powered_url": "",
    "resume_no": "No, Thanks",
    "restrict_domain": "",
    "trackingId": "",
    "income": false,
    "opt_loop": false,
    "css_ctedge": "none",
    "css_background": "rgba(0, 0, 0, 0)",
    "css_icon": "rgba(255, 255, 255, 0.8)",
    "css_button": "#565656",
    "incomePop": {
      "pre": "https://waxpigbaa.com/rRhqZZusGrm5s/17478"
    },
    "css_mntext": "#ffffff",
    "restrict_target": "",
    "css_text": "#f2f2f2",
    "logo_file": "/userdata/259662/player/6863_logo.png?v=1561195425",
    "css_bttext": "#ffffff",
    "opt_playrate": true,
    "opt_mute": false,
    "logo_margin": 20,
    "aspectratio": "16:9",
    "css_tsprogress": "#f2f2f2",
    "logger": "https://v3.fstats.xyz",
    "resume_yes": "Yes, Please",
    "opt_autostart": false,
    "revenue_fallback": "/asset/bann.js?a=0",
    "opt_cast": {
      "appid": "00000000"
    },
    "ads_pop": false,
    "adb_text": "Please turn off adblockers in order to continue watching",
    "restrict_action": "DoNothing",
    "ads_free": 0,
    "opt_title": false,
    "logo_link": "",
    "powered_text": "",
    "resume_text": "Welcome back! You left off at xx:xx:xx. Would you like to resume watching?",
    "adb_offset": "0",
    "poster_file": "/userdata/259662/poster/g/20/g20knu-m0nj6qp5.png?v=1583497561",
    "css_ichover": "#ffffff",
    "css_caption": "#000000"
  },
  "data": [
    {
      "type": "mp4",
      "file": "https://fvs.io/redirector?token=MEY2ajBNR29XSHZSb2hHczBPWE1yMDdjMm95MzlXMkUvUFgwUTcwS1BGYk55TGZ5OU9Iazh2SGtab0NOb1JWOGIxWHJFejh2LzZrQVdQdjR6R0lhdXh1SE9ZNzgwbFlZT2xGNm1ZUzc5ZTEyczY4UUJGWWpHTHhPVWg3S0tVNm1DM0crVnljalNjdm1wZUZ0UHpkYXdJUkdHWm9nOXJITW9uOXg6eTVRemx3UHYyMmMrUStCN2Fic0MwQT09",
      "label": "360p"
    }
  ],
  "success": true,
  "is_vr": false,
  "captions": []
}
 

Я хочу получить объект JSON из URL:

«файл»: «https://fvs.io/redirector ?token=MEY2ajBNR29XSHZSb2hHczBPWE1yMDdjMm95MzlXMkUvUFgwUTcwS1BGYk55TGZ5OU9Iazh2SGtab0NOb1JWOGIxWHJFejh2LzZrQVdQdjR6R0lhdXh1SE9ZNzgwbFlZT2xGNm1ZUzc5ZTEyczY4UUJGWWpHTHhPVWg3S0tVNm1DM0crVnljalNjdm1wZUZ0UHpkYXdJUkdHWm9nOXJITW9uOXg6eTVRemx3UHYyMmMrUStCN2Fic0MwQT09»

Всякий раз, когда я пытаюсь data[0].file в PHP, я получаю внутреннюю ошибку.

Мой код выглядит так:

 <?php
// usage index.php?c=0-9-129
// Don't Change Any Thing !
$input = $_GET["c"];
if (!$input){
   exit("<p>OK!</p>");
}

$channel_meta = JsonfromURI("https://dreamhost.herokuapp.com/api/source/${input}");
$stream_url = $channel_meta->data[0].file;
echo $stream_url;

function JsonfromURI($url) {
   $resp = file_get_contents($url);       
   return json_decode($resp);
};
?>
 

Проверьте здесь: https://dreamhost.herokuapp.com/json.php?c=12345678

Итак, как я могу получить его через PHP?

Комментарии:

1. $channel_meta->data[0].file; — это недопустимый синтаксис PHP

2. @berend Вы можете мне здесь помочь?

3. использование: echo $channel_meta->data[0]->file;

4. @jibsteroos Ну, спасибо! Это работает. Я хотел загрузить данные JSON из link , но он не разрешает доступ к нему. Может ли «CURL» сделать это возможным или любое другое возможное решение