2012-05-10 4 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

Что значит «Как получить продолжительность». Кажется, у вас есть это прямо здесь 'duration: '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

попытался, но вывод равен нулю –

+0

вы можете заменить 'echo $ the_value;' с 'var_dump ($ the_value); Выход();' и вставьте здесь результат? – itsmeee

Смежные вопросы