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

来源:互联网 发布:java编程实例300 编辑:程序博客网 时间:2024/04/26 03:31

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

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 0
原创粉丝点击