浅谈PHP函数file_get_contents与curl 效率及稳定性作者:佚名 标签: 日期:2013年06月18日 类别:网站建设 |
||||
相信很多朋友在做网站内容抓取采集功能的时候都会用到PHP内置函数file_get_contents,这个函数使用起来方便快捷,但使用起来总会遇到获取失败的种种问题。经过上网搜索相关资料发现,原来是函数获取内容超时导致的。小编按照资料中提供的解决方法设置了超时时间,可多数时候还是不会奏效。 下面为超时解决方法: 这时候,再看一下服务器的连接池,还会发现一堆类似的错误,让我头疼万分: file_get_contents(http://***): failed to open stream… 迫不得已,改用curl库,写了一个函数替换。使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展。如果没有开启,请按照以下方法开启: 1.将PHP安装文件夹下的三个文件php_curl.dll(可能在ext文件夹中),libeay32.dll,ssleay32.dll 复制到 %windir%/system32下; 2.打开php.ini(可能在PHP环境的安装目录下,默认在c:WINDOWS目录下),将;extension=php_curl.dll头部的分号去掉; 3.重启php的服务(apache或者IIS),如重启IIS,运行iisreset即可。
替换函数:
如此,除了真正的网络问题外,没再出现任何问题。 这是别人做过的关于curl和file_get_contents的测试: file_get_contents抓取google.com需用秒数:
2.31319094 2.30374217 2.21512604 3.30553889 2.30124092 curl使用的时间: 0.68719101 0.64675593 0.64326 0.81983113 0.63956594 两者差距很大吧?从我使用的经验来说,这两个工具不只是速度有差异,稳定性也相差很大。 建议对网络数据抓取稳定性要求比较高的朋友使用上面的 curl_file_get_contents函数,不但稳定速度快,还能假冒浏览器欺骗目标地址哦! 您可能感兴趣的文章推荐 |
||||
|