快速业务通道

PHP扩展curl和正则表达式轻松采集新闻

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-16

采集已经不是什么新名词了,很多站长为了省事,也局限于人力的缺乏,使用程序来给自己的网站添砖加瓦,比如本人的个人网站www.xxfsw.com也采集了大量的新闻,那么如果实现呢?今天我们运用php来实现这个功能。

谈到采集,我们不得不说两个东西,第一个是如何获取远程网站的源代码,这个可以通过php的一个扩展curl来获取,另一个是如果去匹配你需要的信息,这个的解决办法是正则表达式。

Windows下开启curl的方法如下:

1、拷贝PHP目录中的libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll文件到 system32 目录。

2、修改php.ini:配置好 extension_dir ,去掉 extension = php_curl.dll 前面的分号。

3、重起apache。

Linux下开启curl的方法如下:

进入安装 原php 的源码目录,

cd ext
cd curl
phpize
./configure --with-curl =DIR
make

就会在PHPDIR/ext/curl /moudles/下生成curl .so的文件。

复制curl .so文件到extensions的配置目录,修改php .ini就好了。

然后你就可以利用curl来获取到指定url的网页源码了,这里给大家一个封装好的函数:

以下为引用的内容:
function getwebcontent($url){
    $ch = curl_init();
    $timeout = 10;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
    $contents = trim(curl_exec($ch));
    curl_close($ch);
    return  $contents;
}

接下来就应该说到php中的正则表达式了:

1.中括号

[0-9]匹配0-9

[a-z]匹配a-z小写字母

[A-Z]匹配A-Z大写字母

[a-zA-Z]匹配所有大小写字母

可以使用ascii来制定更多

2.量词

以下为引用的内容:
p+匹配至少一个含p的字符串 
p*陪陪任何包含0个或多个p的字符串 
p?匹配任何包含0个或一个p的字符串 
p{2}匹配包含2个p的序列的字符串 
p{2,3}匹配任何包含2个或3个的字符串 
p$匹配任何以p结尾的字符串 
^p匹配任何以p开头的字符串 
[^a-zA-Z]匹配任何不包含a-zA-Z的字符串 
p.p匹配任何包含p、接下来是任何字符、再接下来有又是p的字符串 
^.{2}$匹配任何值包含2个字符的字符串 
<b>(.*)b>匹配任何被<b>>包围的字符串 
p(hp)*匹配任何一个包含p,后面是多个或0个hp的字符串

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号