2012-06-17 140 views
3

我想讓用戶能夠添加視頻,但我遇到了其中一個網站的問題。從IFrame獲取URL?

我將允許來自Youtube,Vimeo,Vevo,Daily Motion和MTV的視頻。

問題在於MTV。 URL總是不同的,所以我想知道是否有方法獲得IFrame /嵌入代碼的源值。

例子:MTV嵌入代碼是:

<div style="background-color:#000000;width:520px;"> 
<div style="padding:4px;"> 
<iframe src="http://media.mtvnservices.com/embed/mgid:uma:videolist:mtv.com:1687162/cp~instance%3Dfullepisode%26autoPlay%3Dfalse%26series%3D2211%26seriesId%3D29240%26channelId%3D1%26id%3D1687162%26instance%3Dfullepisode%26uri%3Dmgid%3Auma%3Avideolist%3Amtv.com%3A1687162" width="512" height="288" frameborder="0"></iframe> 
<p style="text-align:left;background-color:#FFFFFF;padding:4px;margin-top:4px;margin-bottom:0px;font-family:Arial, Helvetica, sans-serif;font-size:12px;">Get More: 
    <a href="http://www.mtv.com/shows/teen_mom/season_4/series.jhtml" style="color:#439CD8;" target="_blank">Teen Mom (Season 4)</a>, <a href="http://www.mtv.com/videos/home.jhtml" style="color:#439CD8;" target="_blank">Full Episodes</a></p></div></div> 

有沒有一種方法,我可以得到的IFrame源值指出,完整的字符串?

我只是想:

http://media.mtvnservices.com/embed/mgid:uma:videolist:mtv.com:1687162/cp~instance%3Dfullepisode%26autoPlay%3Dfalse%26series%3D2211%26seriesId%3D29240%26channelId%3D1%26id%3D1687162%26instance%3Dfullepisode%26uri%3Dmgid%3Auma%3Avideolist%3Amtv.com%3A1687162 

任何幫助,將不勝感激。其他視頻源很簡單,因爲我能夠使用物理URL本身而不是嵌入代碼。

+0

DOM文檔似乎是一個非常合適的方法,併爲我工作:http://stackoverflow.com/questions/8244508/php-extract-youtube-video-ids-from-array-of-iframe-object -embeds – Jake

回答

2

這是有效的HTML,所以你可以很容易地SimpleXML解析它:

$root = simplexml_load_string($embed_code); 
$url = (string) $root->div->iframe['src']; 
+0

非常感謝你soo ...完美地工作!即時通訊仍然是一個noob知道的SimpleXML功能 – Keezy

+0

這不適合我。我只有iframe,沒有div。所以我試過$ url =(string)$ root-> iframe ['src'];看起來像一個好主意......改爲使用DOMDocument代替。 – Jake

1

要做到這一點,是很容易的,所有你需要的是這一行代碼。

document.getElementById("myFrame").src