2010-07-14 51 views
1

這是我到目前爲止有:如何用嵌入代碼(在PHP中)用文本替換Youtube網址?

<?php 

$content = "word1 http://www.youtube.com/watch?v=yqfKe-67foQ&feature=related word2 http://www.youtube.com/watch?v=2vq7gDEn99Y&feature=related word3 http://www.youtube.com/watch?v=nW5HxgMYRto\nhttp://www.youtube.com/watch?v=8Uc2lpH0iZ0&feature=fvhl"; 
$pattern = '/http:\/\/www\.youtube\.com\/watch\?(.*)v=([a-zA-Z0-9_\-]+)(\S*)/i'; 
$replace = '<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/$2&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/$2&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>'; 

$content = preg_replace($pattern, $replace, $content); 
echo $content; 

?> 

老實說,我不知道爲什麼它不工作。一些幫助將不勝感激。謝謝。

+0

試試只是過濾視頻ID ... – Roki 2010-07-14 10:01:42

回答

1

試試這個簡單的功能URL更換

function youtube($string) 
{ 
    return preg_replace(
    '#(http://(www.)?youtube.com)?/(v/|watch\?v\=)([-|~_0-9A-Za-z]+)&?.*?#i', 
    '<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/$4" frameborder="0" allowfullscreen></iframe>', 
    $string 
); 
} 

echo youtube('http://www.youtube.com/watch?v=VWsjWCt1PsQ'); 
echo youtube('http://youtube.com/watch?v=VWsjWCt1PsQ'); 
echo youtube('http://youtube.com/v/VWsjWCt1PsQ'); 
echo youtube('http://www.youtube.com/v/VWsjWCt1PsQ'); 
0

我只想創建一個配置嵌入代碼的字符串。鏈接屬性可以是#LINK#,width="#WIDTH#"。用你自己的價值取代所有參數。使用起來可能會更舒適。或者你可以簡單地使用youtube embed code generator