【发布时间】:2012-01-02 02:15:46
【问题描述】:
如果在字符串中找到,此函数会嵌入 youtube 视频。
我的问题是什么是仅捕获嵌入视频(iframe,如果有更多,则只有第一个)并忽略字符串的其余部分的最简单方法。
function youtube($string,$autoplay=0,$width=480,$height=390)
{
preg_match('#(v\/|watch\?v=)([\w\-]+)#', $string, $match);
return preg_replace(
'#((http://)?(www.)?youtube\.com/watch\?[=a-z0-9&_;-]+)#i',
"<div align=\"center\"><iframe title=\"YouTube video player\" width=\"$width\" height=\"$height\" src=\"http://www.youtube.com/embed/$match[2]?autoplay=$autoplay\" frameborder=\"0\" allowfullscreen></iframe></div>",
$string);
}
【问题讨论】:
-
最简单、最可靠的方法是不使用正则表达式。
-
@FailedDev 想告诉我如何(不必是相同的功能)?
-
您正在使用 $string 传递部分 html 对吗?你怎么得到那个字符串?
-
我把你的问题读了五遍,脑海中不断出现一个问题:“输入字符串是什么?”
-
该功能目前用于用户发帖自动嵌入yt视频。我正在尝试使用相同的功能(或逻辑)让用户使用 youtube 视频作为他们的头像。