更改 youtube url 以在 php 中嵌入 url [英] change youtube url to embed url in php
问题描述
我找到了这个代码(交换所有要嵌入的 youtube 网址通过 preg_replace()) 交换 youtube 网址 (http://www.youtube.com/watch?v=CfDQ92vOfdc 或 http://www.youtube.com/v/CfDQ92vOfdc) 到 youtube 嵌入网址 (http://www.youtube.com/embed/CfDQ92vOfdc) 但它似乎不起作用?有任何想法吗?我对正则表达式了解不多.
I found this code (Swap all youtube urls to embed via preg_replace()) to swap youtube urls (http://www.youtube.com/watch?v=CfDQ92vOfdc, or http://www.youtube.com/v/CfDQ92vOfdc) into youtube embed urls (http://www.youtube.com/embed/CfDQ92vOfdc) but it doesn't seem to be working? Any ideas? I don't know much about regular expression.
代码如下:
$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
提前致谢.
推荐答案
要么改变
$string = 'http://www.youtube.com/watch?v=CfDQ92vOfdc';
到
$string = '<a href="http://www.youtube.com/watch?v=CfDQ92vOfdc" ></a>';
或
$search = '#<a (?:.*?)href=["\\\']http[s]?:\/\/(?:[^\.]+\.)*youtube\.com\/(?:v\/|watch\?(?:.*?\&)?v=|embed\/)([\w\-\_]+)["\\\']#ixs';
到
$search = '#(.*?)(?:href="https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*#x';
这篇关于更改 youtube url 以在 php 中嵌入 url的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!