2011-12-16 80 views
0

請幫忙!將YouTube嵌入代碼僅限於網址

我需要剝去下面的代碼,以便它只有在這種情況下使用「值」部分

$<object width="360" height="226"><param name="movie" value="http://www.youtube.com/v/IkZuQ-aTIs0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/IkZuQ-aTIs0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="360" height="226"></embed></object> 

因此,這將剝離下來到http://www.youtube.com/v/IkZuQ-aTIs0

美中不足的是,這是動態所以它將這些嵌入代碼拉到不同的文件中,以便它們改變。

請幫忙:D

+0

你是否解決了這個了嗎? – Ascherer 2011-12-19 16:59:01

回答

0

最好的方法是使用DOM解析器。

http://php.net/manual/en/class.domdocument.php

$doc = new DOMDocument(); 
$doc->loadHTML('<object width="360" height="226"><param name="movie" value="http://www.youtube.com/v/IkZuQ-aTIs0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/IkZuQ-aTIs0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="360" height="226"></embed></object>'); 
+0

VideoEmbed變量用於存儲我試圖剝離的YouTube嵌入代碼。我如何將所有提供給本節的代碼添加到本應該添加的地方?遺憾的混亂我有很難上這裏顯示的代碼正確地我一個小白 <?如果PHP($視頻[「VideoEmbed」]){ \t \t \t \t \t \t \t \t回聲「View Video 「; ? \t \t \t \t \t \t \t}> – cpcdev 2011-12-16 16:47:39

+0

我犯了一個新的崗位,說明我的問題,更好地 - http://stackoverflow.com/questions/8537550/rewrite-youtube-url – cpcdev 2011-12-16 17:04:49

1
<?php 

$string = '<object width="360" height="226"><param name="movie" value="http://www.youtube.com/v/IkZuQ-aTIs0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/IkZuQ-aTIs0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="360" height="226"></embed></object>'; 

preg_match_all('#http://www.youtube.com/v/([\w\-]+){11}#is', $string, $matches); 

print_r(array_unique($matches[0])); 

?> 
+0

不,不要與解析HTML正則表達式。 http://stackoverflow.com/a/1732454/362536 – Brad 2011-12-16 18:08:03

0
$string = '<object width="360" height="226"><param name="movie" value="http://www.youtube.com/v/IkZuQ-aTIs0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/IkZuQ-aTIs0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="360" height="226"></embed></object>'; 

$start = strpos($string, 'value="'); 
$string = substr($string, $start + 7); 
$end = strpos($string, '" '); 
$string = substr($string, 0, $end); 

echo $string; 

略高於webartos更復雜,但是會抓住任何價值,而不是僅僅在Youtube鏈接