检测图像 URL 并包裹在 IMG 标签中?

Detect image URL and wrap in IMG tags?

尝试破解 Wordpress 安装以在特定插件的评论部分添加更多用户友好性。

给出三种情况:

1

This is a sentence and image on a newline
http://imgur.com/image.gif

2

This is a sentence http://imgur.com/image.gif

3

This is a sentence and an image with IMG tags entered by user already
<img src="This is a sentence http://imgur.com/image.gif" alt="" />

当显示来自用户的这三种类型的评论时,我想让 PHP 检测第一种情况,并且只检测第一种情况 - 换行符上的图像 url(URL 以常见的图像扩展名结尾)并在显示时简单地将其包装在 <img> 标签中。

我遇到问题的部分,给定评论的字符串,PHP 如何准确地检测到这样的图像 link?

我觉得这可以用正则表达式来完成,但我从来没有非常熟练地使用它?还是更复杂?

您可以使用此正则表达式将查看每行的开头 ((?m)^)、任意数量的水平白色 space (\h*) (space s 或制表符),然后是 HTTP 协议 (https?://)。在协议之后,它采用任何非 space 字符 (\S+?)(因为 URL 不能有 spaces)直到允许的扩展名 (jpe?g|gif|png|tiff|svg).

(?m)^\h*(https?://?\S+?\.(?:jpe?g|gif|png|tiff|svg))

替换为:

<img src="" />

https://regex101.com/r/OXvsBl/3/