2011-04-19 34 views
0

的東西在我的新項目,大家都能夠使用我的YouTube API,它會產生類似下面爲他們在用它標記任何他們想要的textarea:找到自定義標籤之間的字符串,並做它

<ymedia>http://www.youtube-nocookie.com/v/qQG0XfU-bFs</ymedia> 

我希望我的PHP的個人資料頁採取<ymedia></ymedia>之間的串並生成以下使用$ymstring從ymedia標籤收集到的字符串類似的代碼:

<?php 
$u_agent = $_SERVER[''HTTP_USER_AGENT'']; 
if(preg_match(''/Opera/i'',$u_agent)){ 
<object width="320" height="240" data="".$ymstring."?fs=1&amp;hl=en_US&amp;rel=0"><param name="movie" value="".$ymstring."?fs=1&amp;hl=en_US&amp;rel=0" /><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /><param name="bgColor" value="#ffffff" /><param name="flashvars" value="vu=".$ymstring."?fs=1&amp;hl=en_US&amp;rel=0" /></object> 
} else { 
<object width="320" height="240"><param name="movie" value="".$ymstring."?fs=1&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="".$ymstring."?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="240"></embed></object> 
} 
?> 

基本上,我試圖找到所有的ymedia標籤在一個$字符串中,並將其替換爲智能h我的YouTube編碼針對Opera或其他瀏覽器的其餘部分。

+0

你有什麼問題/是什麼問題? – Flipper 2011-04-19 03:02:02

+0

我試圖找到所有的ymedia標籤,並將其替換爲我上面針對Opera或其他瀏覽器其餘部分的youtube編碼。 – yanike 2011-04-19 03:15:44

回答

0

這應該工作:

preg_match("/<ymedia>(.*?)<\/ymedia>/", $Input, $Matches);

然後,你的結果將是$Matches[1],你可以通過爲$ymstring

+0

這是否會爲找到的每個ymedia標記執行此操作並將其保留在相對的html位置? – yanike 2011-04-19 03:09:04

0

您想使用preg_replace_callback爲了簡單:

$html = preg_replace_callback('#<ymedia>(http://.*?)</ymedia>#', 
     "ymedia_cb", $html); 

function ymedia_cb($matches) { 
    $url = $matches[1]; 

    return "<object src=$url>"; 
} 

很明顯,你會用你的if/else結構返回適當且完整的對象標記。

相關問題