Я попытался прочитать ytube xml data width php, но застрял, потому что youtube использует двоеточие (:) в своем API. Чтобы быть точным, вот сценарий, который я использую:
$video = array('/some arrays here,separated width commas/');// array of youtube videos $v = preg_replace("/[^A-Za-z0-9\-\_]/","",$_GET["v"]); // make sure "v" parameter is sanitized if(!empty($v) && in_array($v,$video)){ //check if parameter "v" is empty and is yours video echo('<object width="853" height="505"><param name="movie" value="http://www.youtube.com/v/'.$v.'&hl=en_US&fs=1&hd=1&color1=0xe1600f&color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'.$v.'&hl=en_US&fs=1&hd=1&color1=0xe1600f&color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="853" height="505"></embed></object>'); }else{ foreach($video as $v){ echo(' <div class="tube"><a href="/pages/tube.php?v='.$v.'" class="thickbox"><img style="border:2px solid #000;margin:5px;" alt="" src="http://i1.ytimg.com/vi/'.$v.'/default.jpg"/></a>'); $xmlData = simplexml_load_string(file_get_contents('http://gdata.youtube.com/feeds/api/videos/'.$v.'?fields=title,yt:recorded'));//it should be working if I add fields just separated width commas $title = (string)$xmlData->title; $recorded = (string)$xmlData->recorded;//It should be yt:recorded but I understand that cant use : here! { echo '<p>'.$recorded.' '.$title.'</p></div>'; } } }
Он отлично работает по ширине. Можно ли как-то прочитать: записано
Прежде чем пытаться получить доступ к его значениям, сначала нужно получить пространство имен. Посмотрите на метод getNamespaces
. Используя children
элементы, вы можете получить доступ к значениям внутри пространства имен:
$namespaces = $entry->getNameSpaces(true); $yr = $entry->children($namespaces['yt']); echo $yr->recorded;