php正则学了一些日子,抓了一些网站的数据,从而发现每次都自己写正则重新抓很麻烦,于是就想写一个抓取特定标签具有特定属性值的接口通用,直接上代码。
//$html-被查找的字符串 $tag-被查找的标签 $attr-被查找的属性名 $value-被查找的属性值 function get_tag_data($html,$tag,$attr,$value){ $regex = "/<$tag.*?$attr=\".*?$value.*?\".*?>(.*?)<\/$tag>/is"; echo $regex."<br>"; preg_match_all($regex,$html,$matches,PREG_PATTERN_ORDER); return $matches[1]; } //返回值为数组 查找到的标签内的内容
下面随便给出一个例子
header("Content-type: text/html; charset=utf-8"); $temp = '<ul class="noul clearfix"> <li class="w w0"> <a class="i i0 fc01 h" hidefocus="true" href="http://phpway.blog.163.com/">首页</a> </li> <li class="w w1 selected"> <a class="i i1 fc01 h" hidefocus="true" href="http://phpway.blog.163.com/blog/">日志</a> </li> <li class="w w9"> <a class="i i9 fc01 h" hidefocus="true" href="http://phpway.blog.163.com/loftarchive/">LOFTER</a> </li> <li class="w w2"> <a class="i i2 fc01 h" hidefocus="true" href="http://phpway.blog.163.com/album/">相册</a> </li> <li class="w w5"> <a class="i i5 fc01 h" hidefocus="true" href="http://phpway.blog.163.com/friends/">博友</a> </li> <li class="w w6"> <a class="i i6 fc01 h" hidefocus="true" href="http://phpway.blog.163.com/profile/">关于我</a> </li> </ul>'; $result = get_tag_data($temp,"a","class","fc01"); var_dump($result);
输出结果为
array(6) { [0]=> string(6) "首页" [1]=> string(6) "日志" [2]=> string(6) "LOFTER" [3]=> string(6) "相册" [4]=> string(6) "博友" [5]=> string(9) "关于我" }
查看源码可以看到
array(6) { [0]=> string(6) "首页" [1]=> string(6) "日志" [2]=> string(6) "LOFTER" [3]=> string(6) "相册" [4]=> string(6) "博友" [5]=> string(9) "关于我" }
第一次写blog好紧张哈哈哈,希望会对大家有用,也希望大家能指出代码其中的问题,测试做的不是很多~~
以上所述是小编给大家介绍的PHP正则表达式抓取某个标签的特定属性值的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站长技术网站的支持!
正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特...
在用java进行web业务开发的时候,对于页面上接收到的参数,除了极少数是步可预知...
我是小康,一个热爱前端,热爱生活的99年小伙,人生路漫漫在这里相遇即是你我的缘分...
说起压缩解压软件,如今国内主流的肯定是WinRAR,曾经是WinZip,但还有个不容忽...
SQL编程既令人兴奋又具有挑战性。 即使是经验丰富的SQL程序员,开发人员和数据库...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
我们写程序的目的就是使它在任何情况下都可以稳定工作。一个运行的很快但是结果...
本文介绍了Asp.Net母版页元素ID不一致的体现,分享给大家,具体如下; %@ Page La...
MySQL InnoDB 引擎现在广为使用,它提供了事务,行锁,日志等一系列特性,本文分...
前言 在开发 Asp.Net Core 应用程序的过程中,我们常常需要对业务代码编写单元测...