2014-10-30 59 views
0

我需要幫助來解析來自某些JSON數據的視頻的名稱和URL。從JSON解析視頻名稱和URL

<?php 

$json = file_get_contents('http://odnoklassniki.ru/dk?cmd=videoPlayerMetadata&mid=507252337'); 

$obj = json_decode($json); 
foreach($obj->videos as $videos){ 
    $string = $videos->url; 

$arr = explode('clientType=0',$string); 
$string = implode('clientType=0", type:"mp4"},',$arr); 
$arr = explode('http',$string); 
$string = implode('{ file: "http',$arr); 
echo $string; 
} 
?> 

我還需要 「名」:

"name":"lowest" 
"name":"low" 
"name":"sd" 
"name":"hd" 

原始地址:

http://odnoklassniki.ru/dk?cmd=videoPlayerMetadata&mid=507252337

你可以在這裏進行測試:

http://codepad.viper-7.com/JDiU4h

+0

什麼是不工作的? – Cyclonecode 2014-10-30 13:09:40

+0

的作品,但我也想每個網址的名稱看http://jsonviewer.stack.hu/#http://odnoklassniki.ru/dk?cmd=videoPlayerMetadata&mid=507252337 – 2014-10-30 13:11:46

+1

你知道你已經覆蓋了' $ string'變量兩次,對嗎? – Havelock 2014-10-30 13:17:56

回答

0
<?php 

    $json = file_get_contents('http://odnoklassniki.ru/dk?cmd=videoPlayerMetadata&mid=507252337'); 

    $obj = json_decode($json); 
    foreach($obj->videos as $video){ 
     echo $video->name .' :: '. $video->url; 
     echo '<br>'; 
    } 
?> 

$video變量是一個stdClass對象,這意味着您可以通過$video->value檢索另一個值。

1

如果你想創建另一個基於另一個數據的json,例如你在你的小提琴上的另一個數據,請不要手動創建json字符串。在另一個容器中收集必要的值,然後重新編碼。

$data = json_decode(file_get_contents('http://odnoklassniki.ru/dk?cmd=videoPlayerMetadata&mid=507252337'), true); 
$return = array(); 
foreach($data['videos'] as $videos){ 
    $filename = $videos['name']; 
    $url = $videos['url']; 
    $type = 'mp4'; 

    $return[] = array(
     'file' => $url, 
     'type' => $type, 
     'name' => $filename, 
    ); 
} 

echo json_encode($return); 

// echo '<pre>'; 
// echo json_encode($return, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT); 

Sample Output

+0

好的,另一個問題......爲什麼視頻網址在godaddy上運行,而不是在另一個主機上運行? – 2014-10-30 15:12:56

+0

@VincenzoPiromalli你是什麼意思?它不能在另一臺主機上訪問?網頁說什麼? – Ghost 2014-10-30 23:43:30

0

代碼工作正常,但鏈接不 我猜ok.ru正在使用某種形式的黑客攻擊