首页 > 解决方案 > 检测图像 URL 并包裹在 IMG 标签中?

问题描述

尝试破解 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如何准确检测这样的图像链接?

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

标签: phpwordpressbuddypress

解决方案


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

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

用。。。来代替:

<img src="$1" />

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


推荐阅读