如何在php中找到一个字符串并选择它到末尾(未知)

我需要用php查找并选择文本中的所有youtube链接,以便用正确的嵌入代码替换它们,但我似乎没有找到方法。

1-链接开始的位置:
链接的开始可能会在和之间变化,我认为可以完成这项工作,问题是....https://www.youtube.com/watch?v=<video_id>https://youtu.be/<video_id>strpos()

2-结束位置:
链接可能附加了(或没有)查询字符串,使其长度未知,因此唯一的方法是在或和下一个空格之间进行选择,这将是链接的结尾。https://www.youtube.co....https://youtu.b...

我需要用正确的youtube嵌入代码替换链接。

任何想法如何选择链接?


ABOUTYOU
浏览 124回答 1
1回答

慕桂英3389331

试试这个正则表达式(https:\/\/www\.youtube\.com\/.*?)(?:\s|$)|(https:\/\/youtu\.be\/.*?)(?:\s|$)例用法:$re = '/(https:\/\/www\.youtube\.com\/.*?)(?:\s|$)|(https:\/\/youtu\.be\/.*?)(?:\s|$)/';$str = 'abc https://www.youtube.com/watch?v=Dx5qFachd3A def https://youtu.be/Dx5qFachd3A ghi';$embedStart = '<iframe width="560" height="315" src="';$embedEnd = '" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);$str = preg_replace($re,$embedStart.'$0'.$embedEnd,$str);echo $str;您可以使用preg_replace将其替换为嵌入代码。
打开App,查看更多内容
随时随地看视频慕课网APP