2012-05-10 92 views
0

我嘗試獲取一些attiributue值。但是沒有機會。下面你可以看到我的代碼和解釋。如何獲得持續時間,文件等值?用php dom獲取屬性值

$url="http://www.some-url.ltd"; 

    $dom = new DOMDocument; 
    @$dom->loadHTMLFile($url); 
    $xpath = new DOMXPath($dom); 
    $the_div = $xpath->query('//div[@id="the_id"]'); 
    foreach ($the_div as $rval) { 
     $the_value = trim($rval->getAttribute('title')); 
     echo $the_value; 
    } 

以下的輸出:

{title:'title', 
       description:'description', 
       scale:'fit',keywords:'', 
       file:'http://xxx.ccc.net/ht/2012/05/10/419EE45F98CD63F88F52CE6260B9E85E_c.mp4', 
       type:'flv', 
       duration:'24', 
       screenshot:'http://xxx.ccc.net/video/2012/05/10/419EE45F98CD63F88F52CE6260B9E85E.jpg?v=1336662169', 
       suggestion_path:'/videoxml/player_xml/61319', 
       showSuggestions:true, 
       autoStart:true, 
       width:412, 
       height:340, 
       autoscreenshot:true, 
       showEmbedCode:true, 
       category: 1, 
       showLogo:true 
               } 

如何獲得持續時間,文件等。值?

+0

你是什麼意思「如何獲得持續時間」。看起來你在這裏'期間:'24',' –

+0

想要'24'。 –

回答

2

什麼

$parsed = json_decode($the_value, true); 
$duration = $parsed['duration']; 

編輯: 由於json_decode()需要正確的JSON格式(鍵名和值必須用雙引號),我們應該修復原始格式爲正確的。因此,這裏是代碼:

function my_json_decode($s, $associative = false) { 
$s = str_replace(array('"', "'", 'http://'), array('\"', '"', 'http//'), $s); 
     $s = preg_replace('/(\w+):/i', '"\1":', $s); 
     $s = str_replace('http//', 'http://', $s); 
     return json_decode($s, $associative); 
} 

$parsed = my_json_decode($var, true); 

功能my_json_decode從this answer拍攝,略作修改。

+3

你是不是想用'json_decode()'來代替? – 2012-05-10 20:15:43

+0

嘗試過,但輸出爲空 –

+0

您可以替換'echo $ the_value;' 'var_dump($ the_value);出口();'並在這裏粘貼輸出? – itsmeee