PHP 从字符串中获取图像的所有 URL

标签 php regex string image url

我需要一个用于 PHP 的函数或 Regex 字符串,我可以像这样传递一个字符串:

Lorem ipsum dolor sit amet, http://www.gettyimages.com/images/marketing/frontdoorStill/PanoramicImagesRM/FD_image.jpg consectetur adipiscing elit. Nullam sed diam lectus, a rutrum orci. Suspendisse potenti. Nulla facilisi. Suspendisse potenti. Ut http://www.handsonuniverse.org/get_images/images/20090802.ngc6992.HOS.jpg ullamcorper mauris sit amet elit tristique sit amet laoreet nunc condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam euismod arcu non odio http://www.prelovac.com/vladimir/wp-content/uploads/2008/03/example.jpg aliquam vestibulum. Sed eleifend tellus id augue luctus ac ultrices leo semper.

作为返回我会得到:

http://www.gettyimages.com/images/marketing/frontdoorStill/PanoramicImagesRM/FD_image.jpg http://www.handsonuniverse.org/get_images/images/20090802.ngc6992.HOS.jpg http://www.prelovac.com/vladimir/wp-content/uploads/2008/03/example.jpg

在数组中。我需要它来获取基于天气或不包含常规图像扩展名的 URL,例如 *.jpg、*.png、*.bmp 等。任何人都知道存在这样一个可以避免重新发明轮子吗?谢谢!

最佳答案

好吧,下面将适用于您的示例:

preg_match_all('/(https?:\/\/\S+\.(?:jpg|png|gif))\s+/', $content, $matches);

添加您想要捕获的任何其他扩展。

请注意,以上内容不一定可靠(例如,它不会匹配 www.blah.com/image.jpg)。它也不会匹配未以扩展名结尾的 URL,即使它们是图像(即 http://domain.com/blah.jpg?loadsmall=true 或其他)。有多种方法可以让它更智能,但这实际上取决于您期望的输入类型,因为这将决定您的解析需要变得多么复杂。

关于PHP 从字符串中获取图像的所有 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11790059/

相关文章:

PHP从4个数组制作树状结构数组

php - 从一个 View 重定向到另一个 View - Yii2

php - 仅在PHP中考虑数字字符后的句点的正则表达式

python - 匹配字符串的字符

javascript - 正则表达式,从字符串中选择第一个数字

php - 循环中的 MySQL 查询与使用 SQL 连接

javascript - 在php中将div作为邮件附件发送

c++ - 带 string_view 的正则表达式返回垃圾

c++ - 如何从cpp中的给定字符串中提取特定字符串?

java - 使用带有非空白正则表达式的 String split() 方法