如何在 preg 替换的正则表达式中使用 substr

发布于 2024-10-07 02:52:25 字数 671 浏览 3 评论 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

然后图像网址变为 http://img.youtube.com/vi/ihK2pPcDSHM&feature=channel1/0.jpg< /code> 这不会产生有效的图像。我试图将 \\1 更改为 ".substr('\\1', 0,11)." 但没有任何结果。

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

i am making a bbcode for youtube videos.User can post a video as bbcode eg like [youtube]http://www.youtube.com/watch?v=ihK2pPcDSHM[/youtube]. Next, it will convert it to html code.But instead of video,i want to show also the image of the video. So i do it like this:

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

It shows the image, but when somebody puts a url like:

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

Then the image url becomes http://img.youtube.com/vi/ihK2pPcDSHM&feature=channel1/0.jpg which does not lead to a valid image. I am trying to change the \\1 to ".substr('\\1', 0,11)." but it doesnt have any result.

Any suggestion to solve this? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

余厌 2024-10-14 02:52:25

尝试不同的模式,例如:

~\[yt]http://www\.youtube\.com/watch\?v=([a-z0-9-_]+).*?\[/yt]~is

Try a different pattern like:

~\[yt]http://www\.youtube\.com/watch\?v=([a-z0-9-_]+).*?\[/yt]~is
北方的巷 2024-10-14 02:52:25

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

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

Just tell your regex to stop on the first & character:

$string = preg_replace("~\[yt]http://www.youtube.com/watch\?v=([^\\&]*)\[/yt]~Uis","<img src=\"http://img.youtube.com/vi/\\1/0.jpg\" />", $string);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文