使用file_get_contents的JSON到PHP数组不起作用

时间:2016-05-11 15:22:20

标签: php json file-get-contents

我正试图从dailymotion获取视频网址。 我获得了JSON结果,并使用在线工具进行了有效测试,但是当我使用js_decode& print_r它显示警告,如

enter image description here

<?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获得视频质量和视频网址。

enter image description here

2 个答案:

答案 0 :(得分:1)

你在实际上已经是JSON的地方使用了file_get_contents。

更新的代码,经过测试;)

<?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']);
}
?>

答案 1 :(得分:0)

使用array_keys($array),您可以从数组中获取所有键,它将返回带有键的数组。

<?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);

?>