0

我正在为 youtube 视频制作 bbcode。用户可以将视频发布为 bbcode,例如 [youtube]http://www.youtube.com/watch?v=ihK2pPcDSHM[/youtube]。接下来,它会将其转换为 html 代码。但我想显示视频的图像而不是视频。所以我这样做:

$string = preg_replace("~\[yt]http://www.youtube.com/watch\?v=(.*)\[/yt]~Uis","<img src=\"http://img.youtube.com/vi/\\1/0.jpg\" />", $string);

它显示了图像,但是当有人输入如下网址时:

http://www.youtube.com/watch?v=ihK2pPcDSHM&feature=channel

然后图像 url 变为http://img.youtube.com/vi/ihK2pPcDSHM&feature=channel1/0.jpg不会导致有效图像。我正在尝试将其更改\\1".substr('\\1', 0,11)."但没有任何结果。

有什么建议可以解决这个问题吗?谢谢!

4

2 回答 2

0

&只需告诉您的正则表达式在第一个字符上停止:

$string = preg_replace("~\[yt]http://www.youtube.com/watch\?v=([^\\&]*)\[/yt]~Uis","<img src=\"http://img.youtube.com/vi/\\1/0.jpg\" />", $string);
于 2010-12-12T17:34:38.920 回答
0

尝试不同的模式,例如:

~\[yt]http://www\.youtube\.com/watch\?v=([a-z0-9-_]+).*?\[/yt]~is
于 2010-12-12T17:30:57.523 回答