康康马

用PHP正则表达式解析网页内容

 kangkangma | 26 十一月, 2007 22:41

    在前面的文章中,笔者上传了正则表达式Cheat Sheet,不过光看这些手册是不能明白正则表达式的精妙的,来个实例更有助于理解。

    抓取网站内容应该是程序员经常会碰到的问题,获取网页的内容很简单,只要一个file_get_contents就搞定了。你也可以选择一个叫snoopy的class,虽然只是一个class,但是功能很强大,可以模拟用户登录,表单提交等。

    假设要获取网页中所有的链接和链接中的文字,可以用以下的正则表达式代码来获得:

正则表达式 example
  1. $content=file_get_contents($url);
  2. preg_match_all('/<a href="(.*)" >(.*)<\/a>/U', $content,$arr_pat);
  3. print_r($arr_pat);
kangkangma © 2007

$arr_pat[1][0]是网页中第一个链接的地址, $arr_pat[2][0]是网页中第一个链接的文字。

    正则表达式就是这样的简单,强大,它能让你头疼,疑惑,也能让你更有效率,更加的cool。