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 相关文章推荐
PHP中一个控制字符串输出的函数
Oct 09 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
php的$_FILES的临时储存文件与回收机制实测过程
Jul 12 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 PHP
php日期操作技巧小结
Jun 25 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
Zend Framework实现自定义过滤器的方法
Dec 09 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
PHP共享内存使用与信号控制实例分析
May 09 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 24 PHP
你真的了解PHP中的引用符号(&)吗
May 12 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排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
php单例模式实现方法分析
2015/03/14 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
JS表的模拟方法
2015/02/05 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
通过js给网页加上水印背景实例
2019/06/17 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
python3实现随机数
2018/06/25 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
计算机专业职业规划
2014/02/28 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
校园运动会广播稿
2014/10/06 职场文书
2014会计年终工作总结
2014/12/20 职场文书
考研复习计划
2015/01/19 职场文书
安全保证书格式
2015/02/28 职场文书
人力资源部工作计划
2019/05/14 职场文书
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android
Python pyecharts绘制条形图详解
2022/04/02 Python