我有这个preg_match规则,可以将纯YouTube链接转换为实际的播放器html代码:

preg_match('#(?:http://)?(?:www\.)?(?:youtube\.com/(?:v/|watch\?)|youtu\.be/)([\w-]+)(?:\S+)?#', $text, $youtube_match);

1)如果我在视频链接之后紧接有一个标签,这是行不通的,我们可以说一个br标签:http://www.youtube.com/watch?v=4rUGhlNCNho<br />,它可能认为<br是URL的一部分。

2)如何修改规则以匹配url变量的混合顺序,例如:
http://www.youtube.com/watch?feature=player_embedded&v=4rUGhlNCNho代替http://www.youtube.com/watch?v=4rUGhlNCNho

最佳答案

如果iam正确,则只需要参数v =即可生成并嵌入视频

preg_match('#(?:http://)?(?:www\.)?(?:youtube\.com/(?:v/|watch\?)|youtu\.be/)[a-z0-9A-Z\-_\=\&\%\?]*v\=([a-zA-Z0-9]+)#', $text, $youtube_match);

关于regex - 修复preg_match规则不匹配标签 “<”的开头,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14284265/

10-17 02:20