php之curl设置超时实例


Posted in PHP onNovember 03, 2014

本文实例讲述了php中curl超时设置方法。分享给大家供大家参考。具体实现方法如下:

访问HTTP方式很多,可以使用curl, socket, file_get_contents() 等方法。
在访问http时,需要考虑超时的问题。

CURL访问HTTP:

CURL 是常用的访问HTTP协议接口的lib库,性能高,还有一些并发支持的功能等。 
curl_setopt($ch, opt) 可以设置一些超时的设置,主要包括:   
① (重要) CURLOPT_TIMEOUT 设置cURL允许执行的最长秒数。     
② (重要) CURLOPT_TIMEOUT_MS 设置cURL允许执行的最长毫秒数。   
(在cURL 7.16.2中被加入。从PHP 5.2.3起可使用)
③  CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则无限等待。
④ CURLOPT_CONNECTTIMEOUT_MS 尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。  (在cURL 7.16.2中被加入。从PHP 5.2.3开始可用) 
⑤ CURLOPT_DNS_CACHE_TIMEOUT 设置在内存中保存DNS信息的时间,默认为120秒。
 
1. curl普通秒级超时:

$ch = curl_init();      

 curl_setopt($ch, CURLOPT_URL,$url);       

 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);       

 curl_setopt($ch, CURLOPT_TIMEOUT,60);   //只需要设置一个秒的数量就可以  

 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);       

 curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);

2. curl普通秒级超时使用:

curl_setopt($ch, CURLOPT_TIMEOUT,60);
 

3. curl如果需要进行毫秒超时,需要增加:

curl_easy_setopt(curl, CURLOPT_NOSIGNAL,1L);      

 //或者      

 curl_setopt ( $ch,  CURLOPT_NOSIGNAL,true);//支持毫秒级别超时设置

 
希望本文所述对大家的PHP程序设计有所帮助。
PHP 相关文章推荐
BBS(php & mysql)完整版(六)
Oct 09 PHP
PHP XML error parsing SOAP payload on line 1
Jun 17 PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 PHP
如何通过Linux命令行使用和运行PHP脚本
Jul 29 PHP
ThinkPHP实现递归无级分类――代码少
Jul 29 PHP
windows下apache搭建php开发环境
Aug 27 PHP
thinkphp中字符截取函数msubstr()用法分析
Jan 09 PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 PHP
laravel 5.4中实现无限级分类的方法示例
Jul 27 PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 PHP
php7新特性的理解和比较总结
Apr 14 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 #PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 #PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 #PHP
php防止sql注入之过滤分页参数实例
Nov 03 #PHP
详解PHP导入导出CSV文件
Nov 03 #PHP
php实现图片文件与下载文件防盗链的方法
Nov 03 #PHP
php过滤表单提交的html等危险代码
Nov 03 #PHP
You might like
php 调试利器debug_print_backtrace()
2012/07/23 PHP
php连接函数implode与分割explode的深入解析
2013/06/26 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
setTimeout与setInterval在不同浏览器下的差异
2010/01/24 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
python通过线程实现定时器timer的方法
2015/03/16 Python
打包发布Python模块的方法详解
2016/09/18 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
cf搞笑广告词
2014/03/14 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
四年级语文教学反思
2016/03/03 职场文书
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
手把手教你导入Go语言第三方库
2021/08/04 Golang
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang