如何仅显示一个嵌入的YouTube视频


How to show only one embed youtube video

我开发了一个功能,使用 iframe 将 YouTube 视频 URL 转换为嵌入 HTML 代码作为社交网络脚本,效果很好......但是,当有人发布多个视频链接时,这是一个真正的破坏,并且有多个嵌入视频。

function YoutubeURLtoEmbed {
    $search = '#<a(.*?)(?:href="https?://)?(?:www'.)?(?:youtu'.be/|youtube'.com(?:/embed/|/v/|/watch?.*?v=))(['w'-]{10,12}).*<'/a>#x';
    $replace = '<iframe width="500" height="300" src="http://www.youtube.com/embed/$2" frameborder="0" allowfullscreen></iframe>';
    $text = preg_replace($search, $replace, $text);
    return $text;
}

我的问题是:有没有办法限制链接的数量可以转换为嵌入视频,在此限制之后返回视频的链接?

感谢您未来的帮助。

preg_replace()有第四个参数$limit,使用它!

混合preg_replace ( 混合$pattern , 混合$replacement , 混合$subject [, int $limit = -1 [, int &$count ]] )

因此,例如,如果您只想替换前 3 个出现,则可以使用:

$text = preg_replace($search, $replace, $text, 3);