首页 后端开发 php教程 PHP 正则表达式:如何匹配 HTML 中的所有图片链接

PHP 正则表达式:如何匹配 HTML 中的所有图片链接

Jun 23, 2023 am 11:17 AM
php 正则表达式 html图片链接

在 HTML 页面中,我们经常需要提取其中的图片链接,以便在其他场合使用,或者做一些图片下载、批处理等操作。此时,PHP 正则表达式可以帮助我们快速准确地匹配出所有的图片链接。

一、分析 HTML 中的图片链接

在 HTML 中,图片链接通常以 <img> 标签的形式出现,其格式如下:

&lt;img src=&quot;image.jpg&quot; alt=&quot;图片&quot;&gt;
登录后复制

其中,src 属性指定了图片的链接地址。一般情况下,图片链接的格式有以下几种:

  1. 相对链接:/images/picture.jpg
  2. 绝对链接:https://www.example.com/images/picture.jpg
  3. 带参数链接:https://www.example.com/images/picture.jpg?size=large
  4. 相对路径链接:../images/picture.jpg

我们需要编写正则表达式来匹配这四种链接格式。

二、PHP 正则表达式匹配图片链接

PHP 中的正则表达式函数有很多种,其中 preg_match() 是最常用的一种,可以用于从文本中匹配指定的字符串。下面是一个可以匹配上述四种图片链接格式的正则表达式:

$pattern = '/&lt;img.+?src=['&quot;](.+?)['&quot;].*?&gt;/';
登录后复制

这个正则表达式由多个部分组成,下面我们来一一解释:

  1. <img.+?src= 匹配 <img> 标签,并定位到 src 属性之前。其中,.+? 表示非贪婪匹配任意字符,直到遇到 src。
  2. ['"] 表示引号,可以匹配双引号或单引号。
  3. (.+?) 表示匹配任意字符,直到遇到下一个引号。这里使用了捕获组,可以在后续代码中使用 $matches 数组调用。
  4. .*? 表示非贪婪匹配任意字符,直到 > 符号。

接下来,我们使用 preg_match() 函数来提取 HTML 中所有的图片链接:

$html = file_get_contents('example.html'); // 读取 HTML 文件
preg_match_all($pattern, $html, $matches); // 匹配链接
$imgUrls = $matches[1]; // 获取匹配到的链接地址
登录后复制

这样,我们就可以得到一个包含所有图片链接的数组 $imgUrls。如果你希望只匹配某种格式的图片链接,可以在正则表达式中做一些修改,例如只匹配绝对链接:

$pattern = '/&lt;img.+?src=['&quot;](https?://.+?)['&quot;].*?&gt;/';
登录后复制

这个正则表达式增加了 http 或 https 协议头的限制,只匹配以这两种协议开头的绝对链接。

总结

使用 PHP 正则表达式来匹配 HTML 中的图片链接并不是一件复杂的事情,只需要根据链接格式编写相应的正则表达式,然后使用 preg_match() 函数即可快速准确地提取出所有的链接。如果你经常需要从 HTML 中提取其他内容,也可以通过类似的方法来实现。

以上是PHP 正则表达式:如何匹配 HTML 中的所有图片链接的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和时间

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

CakePHP 项目配置

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

CakePHP 文件上传

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

讨论 CakePHP

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

See all articles