我需要用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嵌入代码替换链接。任何想法如何选择链接?
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
试试这个正则表达式
(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将其替换为嵌入代码。
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报
0/150
提交
取消