PHP中如何使用正则表达式抓取a标签的内容

overme7个月前 (10-17)网页设计1217

如下图所示,我爱自学小编通过正则表达式获取了下方所示的源码。那么如何获取a标签中“内容1”和“内容2”的值呢!

<ul>
<li><a href=”http://xxxxx/2022-11-18/207122075.html”  target=”_blank”>内容1</a></li>
<li><a href=”http://xxxxx/2022-11-18/207122076.html”  target=”_blank”>内容2</a></li>
</ul>

解决方法一,通过正则表达式的子模式功能

这里需要了解正则匹配的子模式功能:正则表达式中,可以使用“(”和“)”将模式中的子字符串括起来,以形成一个子模式。将子模式视为一个整体时,那么它就相当于一个单个字符。比如:正则表达式 /<b>(.*)</b>/,可以匹配内容:<b>内容1</b>,其中内容1就是表达式中(.*)对应的内容。(.*)匹配的内容就是这个正则表达式的子组。

$subject = ‘<a href=”http://xxxxx/2022-11-18/207122076.html”  target=”_blank”>内容2</a>’;

$pattern = ‘/<a[^>]*>(.*)<\/a>/i’;    // 这是匹配的正则表达式,“(”和“)”匹配的内容,是子组匹配模式

preg_match_all($pattern, $subject, $matches);    //  开始匹配,该函数会把匹配结果放入 $matches数组中,$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。

print_r($matches[1]);

实现方法二:如果不理解正则的子模式,可以使用正则匹配后截取字符的方式

$subject = ‘<a href=”http://xxxxx/2022-11-18/207122076.html”  target=”_blank”>内容2</a>’;

$pattern = ‘/>.*</i’;    // 这是匹配的正则表达式获取包含“>链接内容<”的内容

preg_match_all($pattern, $subject, $matches);    //

print_r(substr($matches[0][0],1,7));

推荐使用方法一

相关文章

PHP unlink函数删除文件的方法

使用Discuz系统建站时,如果想要对精华主题封面图片进行裁剪,生成新图片。那么取消精华设置时,就需要删除之前裁剪的图片,这样能减少服务器不必要的存储。 小编在我爱自学移动端开发时,就遇到了这样的...


		PHP如何原样输出XML样式的Sitemap数据

PHP如何原样输出XML样式的Sitemap数据

网站运营过程中,将网站的资源以Sitemap的形式提交给搜索引擎是非常必要的。本文分享通过php代码获取Discuz系统中未加入Sitemap的链接,然后在HTML原样输出XML样式的Sitema...


		通过PHP获取下拉列表中的多个选定值

通过PHP获取下拉列表中的多个选定值

如本文摘要所述,本文小编通过具体示例给大家分享使用php获取下拉列表中的多个选定值的实现方法。 首先,我们通过HTML代码来创建测试的基础SELECT选择框。 <form method...


		php htmlspecialchars函数作用及使用方法

php htmlspecialchars函数作用及使用方法

php htmlspecialchars函数作用? 函数把预定义的特殊字符转换为 HTML 实体。通俗一些的意思是:将& (和号)转换为 &,” (双引号)成为 “,’ (单引号)...

php过滤操作htmlentities与htmlspecialchars用法解析

过滤操作是指,数据入库之前,通过转义的方法或删除的方法,过滤删除不安全的字符。过滤操作对于系统和数据安全是至关重要的,假如网站提供的交互表单,没有过滤操作,那么恶意的攻击者就可以轻松的进行网站攻击...

Windows环境下搭建本地服务器环境的工具

下面提到的几款本地环境搭建工具,小编使用过wampserver和phpstudy,入门的话推荐国产的phpstudy,中文界面配置也很容易。 一键搭建PHP运行环境工具 1.APMServ htt...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。