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 相关文章推荐
文章推荐系统(三)
Oct 09 PHP
PHP+javascript模拟Matrix画面
Oct 09 PHP
html中select语句读取mysql表中内容
Oct 09 PHP
php缓存技术详细总结
Aug 07 PHP
PHP $_FILES中error返回值详解
Jan 30 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
Nov 05 PHP
php $_SESSION会员登录实例分享
Jan 19 PHP
PHP实现适用于文件内容操作的分页类
Jun 15 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 PHP
PHP计算近1年的所有月份
Mar 13 PHP
php弹出提示框的是实例写法
Sep 26 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 curl post 时出现的问题解决
2014/01/30 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
php-msf源码详解
2017/12/25 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
pycharm配置当鼠标悬停时快速提示方法参数
2019/07/31 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
PyQt5-QDateEdit的简单使用操作
2020/07/12 Python
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
国际经济与贸易专业求职信
2014/07/10 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
工程合作意向书范本
2015/05/09 职场文书
《花钟》教学反思
2016/02/17 职场文书
python基础入门之字典和集合
2021/06/13 Python