关于PHP的超时--set_time_limit与CURLOPT_TIMEOUT思考

搞爬虫的时候一两条链接可以正常爬取,但是一到几百条链接的时候总会报错

ErrnoOperation timed out after 30063 milliseconds with 0 out of -1 bytes rec

上网查了一下资料发现是超时报错的问题。于是顺便查了下PHP中的set_time_limit与用curl库时其中CURLOPT_TIMEOUT设置的区别。

        set_time_limit() 函数可以设置程序执行时间,如果括号里的参数为0的话,也就是set_time_limit(0);则程序一直执行下去直到程序完全执行完成,而如果在函数里面设置了执行秒数,则时间一到不管程序执行完成与否都会自动停止。

       curl_setopt($conn[$i], CURLOPT_TIMEOUT, 20);这个主要是用于接收数据时的超时设置。如果数据未在20秒内接收完毕,则自动断开连接。

在程序中加入curl_setopt($conn[$i], CURLOPT_TIMEOUT, 20);后爬虫正常运行,不会报这个错误了。

 

参考博客:http://www.cnblogs.com/wainiwann/p/3494391.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值