在我的新项目中,会员可以使用我的YouTube API,它会生成如下标签,以便他们在任何想要的文字区域中使用它:
<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&hl=en_US&rel=0"><param name="movie" value="".$ymstring."?fs=1&hl=en_US&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&hl=en_US&rel=0" /></object>
} else {
<object width="320" height="240"><param name="movie" value="".$ymstring."?fs=1&hl=en_US&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="".$ymstring."?fs=1&hl=en_US&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="240"></embed></object>
}
?>
基本上,我正在尝试在$ string中找到所有ymedia标签,并将其替换为上面针对Opera或其他浏览器的youtube编码。
答案 0 :(得分:0)
这应该有效:
preg_match("/<ymedia>(.*?)<\/ymedia>/", $Input, $Matches);
然后,您的结果将显示在$Matches[1]
中,您可以将其作为$ymstring
传递。
答案 1 :(得分: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构造返回适当且完整的对象标记。