JSON 到 PHP 数组使用 file_get_contents 无效

JSON to PHP Array using file_get_contents not working

我正在尝试从 dailymotion 获取视频 urls。 我得到了 JSON 结果并通过在线工具对其进行了有效测试,但是当我使用 js_decode 和 print_r 时,它会显示类似

的警告

<?php

$content = file_get_contents("http://www.dailymotion.com/embed/video/x49oyt5");

$content = explode(',"qualities":', $content);

$json = explode(',"reporting":', $content[1]);

$json = $json[0];

$mycontent = file_get_contents($json);

$response = json_decode($mycontent, true);

print_r($response);

?>

我想从 JSON 获得视频质量和视频 url。

使用 array_keys($array) 你可以从数组中获取所有键,它将 return 一个包含键的数组。

<?php

$content = file_get_contents("http://www.dailymotion.com/embed/video/x49oyt5");

$content = explode(',"qualities":', $content);

$json = explode(',"reporting":', $content[1]);

$json = $json[0];

$mycontent = file_get_contents($json);

$response = json_decode($mycontent, true);

$qualities = array_keys($response)

print_r($qualities);

?>

您正在使用 file_get_contents 实际上已经是 JSON。

更新代码,测试 ;)

<?php

$content = file_get_contents("http://www.dailymotion.com/embed/video/x49oyt5");

$content = explode(',"qualities":', $content);

$json = explode(',"reporting":', $content[1]);

$json = $json[0];

$videos = json_decode($json,true);

//Cycle through the 1080 videos and print the video urls
foreach($videos[1080] as $video){
  printf("Video type:%s URL:%s\n", $video['type'], $video['url']);
}

//Cycle through the 720 videos and print the video urls
foreach($videos[720] as $video){
  printf("Video type:%s URL:%s\n", $video['type'], $video['url']);
}
?>