当前位置: 首页 > 编程笔记 >

PHP正则表达式抓取某个标签的特定属性值的方法

黎鹤轩
2023-03-14
本文向大家介绍PHP正则表达式抓取某个标签的特定属性值的方法,包括了PHP正则表达式抓取某个标签的特定属性值的方法的使用技巧和注意事项,需要的朋友参考一下

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正则表达式抓取某个标签的特定属性值的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 问题内容: 我正在尝试提取锚标记()的属性。到目前为止,我有这个表达: 适用于像 和(单引号) 但不适用于不带引号的字符串: 如何修改我的正则表达式,使其与不带引号的属性一起使用?还是有更好的方法来做到这一点? 更新: 谢谢您到目前为止的所有好评和建议。 我没有提到一件事:很遗憾,我必须修补/修改不是由我编写的代码。而且没有时间/金钱从头开始重写这些东西。 问题答案: 如果你有一个像 此正则表达式

  • 本文向大家介绍php过滤HTML标签、属性等正则表达式汇总,包括了php过滤HTML标签、属性等正则表达式汇总的使用技巧和注意事项,需要的朋友参考一下 清除空格,换行 过滤HTML属性 1,过滤所有html标签的正则表达式: 3,过滤部分html标签的正则表达式的排除式(比如排除<p>,即不过滤<p>): 4,过滤部分html标签的正则表达式的枚举式(比如需要过滤<a><p><b>等): 5,过滤

  • 本文向大家介绍C#基于正则表达式抓取a标签链接和innerhtml的方法,包括了C#基于正则表达式抓取a标签链接和innerhtml的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#基于正则表达式抓取a标签链接和innerhtml的方法。分享给大家供大家参考,具体如下: 图解正则 朋友需要截取img标签的src 和data-url   跟上面差不多。。顺便附上 PS:这里再为大家提

  • 问题内容: 我正在寻找一个正则表达式,可以从Java中的HTML片段中获取src(不区分大小写)标签。 问题答案: 一种可能性: 是可能的(如果不区分大小写地匹配)。这有点混乱,故意忽略了不使用引号的情况。要表示它而不必担心字符串转义: 这符合: 一个或多个不是的字符(即可能的其他属性) 可选空格 可选空格 或的起始定界符 图片来源 (可能不包含单引号或双引号) 结束定界符 尽管表达式可以在此处停

  • 我正在尝试用python编写一个正则表达式,它可以找到src属性等于特定值的所有img标签..我试着写下面的 下面是我得到的输出

  • 问题内容: 使用PHP,如何隔离$ foo的src属性的内容?我寻找的最终结果只会给我“ http://example.com/img/image.jpg ” 问题答案: 如果您不想使用正则表达式(或任何非标准的PHP组件),则使用内置的DOMDocument类的合理解决方案如下: