2016-05-11 11 views
-1

私はdailymotionからビデオURLを取得しようとしています。 iは、JSONの結果を持って、オンラインツールでテストの有効ですが、私はjs_decode &ますprint_rを使用する場合、それは私がJSONからのビデオ品質とビデオのURLを取得したいJSONからPHPへの配列file_get_contentsが動作しない

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

?> 

ような警告を示しています。

enter image description here

+2

'その正しい形式でかどうかexplode'後に' $のjson'をチェック!第二に、なぜ 'file_get_contents'を二度使用していますか? – Abbasi

+0

'$ content'を一度取得し、' json_decode($ content、true);だけを取得しようとすると、あなたは 'array'を取得して遊ぶことができます。 'file_get_contents'を2回使用するのは良い方法とは思いません。 – Abbasi

+0

ありがとうございます。 jsonの値を読み取るには? –

答えて

1

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

大きな間違いでした。どのように240,380,480、URL値のようなプロパティの値を読み取るのですか? –

+1

リソースは品質によってグループ化されていますので、熟達した品質のキーにアクセスし、リソースを循環させるだけです。 –

+0

プロパティにアクセスするためのコードを書いてください。ありがとう –

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

?> 
関連する問題