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快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
PHP 文件上传全攻略
Apr 28 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
thinkphp的CURD和查询方式介绍
Dec 19 PHP
php smarty truncate UTF8乱码问题解决办法
Jun 13 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
PHP网站建设的流程与步骤分享
Sep 25 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
PHP运行模式汇总
Nov 06 PHP
Laravel 实现关系模型取出需要的字段
Oct 10 PHP
浅析PHP echo 和 print 语句
Jun 30 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
星际争霸兵种名称对照表
2020/03/04 星际争霸
收集的DedeCMS一些使用经验
2007/03/17 PHP
PHP 获取远程文件内容的函数代码
2010/03/24 PHP
PHP实现的购物车类实例
2015/06/17 PHP
javascript处理table表格的代码
2010/12/06 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
python实现报表自动化详解
2017/11/16 Python
简单实现python聊天程序
2018/04/01 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
python中的时区问题
2021/01/14 Python
animation和transition的区别
2020/10/12 HTML / CSS
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
体育专业个人求职信范文
2013/12/27 职场文书
精彩自我鉴定
2014/01/16 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
和解协议书
2014/04/16 职场文书
一年级小学生评语
2014/04/22 职场文书
2014会计年终工作总结
2014/12/20 职场文书
高三复习计划
2015/01/19 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android