有关匹配HTML页面内容问题

最近有做到匹配HTML页面上的某些内容的相关工作,在此总结下:

1、下载页面内容file_get_contents

具体用法:file_get_contents($url);  

返回值:返回整个页面字符串


2、提取页面内容

这里有两种方法,一是直接使用正则匹配,二是使用php解析HTML类库(需要下载:simple_html_dom.php),当然,也可以两类结合起来,这样用的更方便

2.1、正则匹配

$content = file_get_contents($url);  

preg_match('正则表达式',  $content, 存放匹配结果的数组名)                         //注:这个方法只匹配第一个遇到的能匹配上的内容

preg_match_all('正则表达式',  $content, 存放匹配结果的数组名,  PREG_PATTERN_ORDER);     //注:可以匹配页面中所有符合的内容

 //最后一个参数有三种类型,关于它们 的区别请自行查看


2.2、使用php解析HTML类库

先下载simple_html_dom.php(下载地址:https://github.com/samacs/simple_html_dom,地址来源于上品物语文章),将其放在项目文件夹下,导入:

include './simple_html_dom.php';

之后就可以开始使用啦!

  • 新建一个dom实例:$html = new simple_html_dom();
  • 加载要处理的内容:$html->load($page);                            
  • //有三种加载方式,具体请参考上品物语博文:http://www.cnblogs.com/eczhou/archive/2013/03/15/2961354.html
  • 获取内容:$mt = $html->find('div[class=mt10 clear]',0);                  //此例是获取<div class="mt10 clesr">......</div>内的所有内容 
 


2.3、二者结合    

看了以上两种,相信你对第三种已经有了猜想了,接下来就介绍两种的结合

  • 用php解析HTML类库缩小我们所需获取内容的范围     
  • 使用正则匹配,把匹配函数preg_match() 或 preg_match_all() 的第二个参数换成第一步的返回值,即$mt = $html->find('div[class=mt10 clear]',0);中的$mt

是不是很简单呢?O(∩_∩)O~~



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值