为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
ABOUTYOU 2022-08-05 10:35:35
我需要用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将其替换为嵌入代码。


查看完整回答
反对 回复 2022-08-05
  • 1 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信