更改 youtube url 以在 php 中嵌入 url

2024-02-04

我找到了这段代码(通过 preg_replace() 交换所有要嵌入的 YouTube 网址 https://stackoverflow.com/questions/10435645/swap-all-youtube-urls-to-embed-via-preg-replace) 交换 YouTube 网址 (http://www.youtube.com/watch?v=CfDQ92vOfdc http://www.youtube.com/watch?v=CfDQ92vOfdc, or http://www.youtube.com/v/CfDQ92vOfdc http://www.youtube.com/v/CfDQ92vOfdc)到 youtube 嵌入网址(http://www.youtube.com/embed/CfDQ92vOfdc http://www.youtube.com/embed/CfDQ92vOfdc)但它似乎不起作用?有任何想法吗?我对正则表达式了解不多。

这是代码:

$string     = 'http://www.youtube.com/watch?v=CfDQ92vOfdc';
$search     = '#<a (?:.*?)href=["\\\']http[s]?:\/\/(?:[^\.]+\.)*youtube\.com\/(?:v\/|watch\?(?:.*?\&)?v=|embed\/)([\w\-\_]+)["\\\']#ixs';
$replace    = 'http://www.youtube.com/embed/$2';
$url        = preg_replace($search,$replace,$string);

但它仍然显示为:

http://www.youtube.com/watch?v=CfDQ92vOfdc

代替:

http://www.youtube.com/embed/CfDQ92vOfdc

提前致谢。


一个问题是您的表达式需要地址周围有 a-href 标签。 另一个问题是您的 $replace 字符串使用单引号,它不会解析 $2。

这个更简单的表达式应该有效:

$string     = 'http://www.youtube.com/watch?v=CfDQ92vOfdc';
$search     = '/youtube\.com\/watch\?v=([a-zA-Z0-9]+)/smi';
$replace    = "youtube.com/embed/$1";    
$url = preg_replace($search,$replace,$string);
echo $url;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 youtube url 以在 php 中嵌入 url 的相关文章

随机推荐