2012-05-10 18 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']; 

についてEDIT: 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()'を使うのですか? –

+0

が試されましたが、出力がnullです –

+0

'echo $ the_value;'を置き換えることはできますか? 'var_dump($ the_value);を指定します。出口();'ここに出力を貼り付けますか? – itsmeee

関連する問題