zoukankan      html  css  js  c++  java
  • 简评file_get_contents与curl 效率及稳定性

    简介:这是简评file_get_contents与curl 效率及稳定性的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。

    class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=332944' scrolling='no'>

    做过好多抓取别家网站内容的产品,习惯了使用方便快捷的file_get_contents函数,但是总是会遇到获取失败的问题,尽管按照手册中的例子设置了超时,可多数时候不会奏效:

    $config['context'] = stream_context_create(array(‘http’ => array(‘method’ => “GET”,
    ’timeout’ => 5//这个超时时间不稳定,经常不奏效
    )
    ));

    这时候,看一下服务器的连接池,会发现一堆类似的错误,让你头疼万分:

    file_get_contents(http://*** ): failed to open stream…

    不得已,安装了curl库,写了一个函数替换:

    function curl_file_get_contents($durl){
       $ch = curl_init();
       curl_setopt($ch, CURLOPT_URL, $durl);
       curl_setopt($ch, CURLOPT_TIMEOUT, 5);
       curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);
       curl_setopt($ch, CURLOPT_REFERER,_REFERER_);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       $r = curl_exec($ch);
       curl_close($ch);
       return $r;
     }

    如此,除了真正的网络问题外,没再出现任何问题。

    这是别人做过的关于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函数,不但稳定速度快,还能假冒浏览器欺骗目标地址哦!

    转载来之:http://www.71j.cn/archives/140

    爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

    http://biancheng.dnbcw.info/php/332944.html pageNo:11
  • 相关阅读:
    node.js 安装后怎么打开 node.js 命令框
    thinkPHP5 where多条件查询
    网站title中的图标
    第一次写博客
    Solution to copy paste not working in Remote Desktop
    The operation could not be completed. (Microsoft.Dynamics.BusinessConnectorNet)
    The package failed to load due to error 0xC0011008
    VS2013常用快捷键
    微软Dynamics AX的三层架构
    怎样在TFS(Team Foundation Server)中链接团队项目
  • 原文地址:https://www.cnblogs.com/ooooo/p/2249310.html
Copyright © 2011-2022 走看看