【发布时间】:2013-03-02 08:09:37
【问题描述】:
我发现此代码 (Swap all youtube urls to embed via preg_replace()) 将 youtube 网址 (http://www.youtube.com/watch?v=CfDQ92vOfdc 或 http://www.youtube.com/v/CfDQ92vOfdc) 交换为 youtube 嵌入网址 (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
提前致谢。
【问题讨论】:
-
它正在寻找一个锚标记,而不仅仅是一个 URL。你的字符串应该是
<a href="... -
啊,我明白了,谢谢你的帮助:)
标签: php regex youtube preg-replace