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 相关文章推荐
基于mysql的bbs设计(五)
Oct 09 PHP
php处理斐波那契数列非递归方法
Feb 04 PHP
PHP防止post重复提交数据的简单例子
Jun 07 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 PHP
Smarty中常用变量操作符汇总
Oct 27 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
PHP echo()函数讲解
Feb 15 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
PHP常见过waf webshell以及最简单的检测方法
May 21 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
Jul 24 PHP
PHP容器类的两种实现方式示例
Jul 24 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 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备份数据库类分享
2015/04/14 PHP
PHP函数超时处理方法
2016/02/14 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
javascript的push使用指南
2014/12/05 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
js创建数组的简单方法
2016/07/27 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
JavaScript类的写法
2016/09/17 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
Python获取央视节目单的实现代码
2015/07/25 Python
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
Django objects的查询结果转化为json的三种方式的方法
2018/11/07 Python
Python登录系统界面实现详解
2019/06/25 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
英国折扣零售连锁店:QD Stores
2018/12/08 全球购物
汽车专业毕业生自荐信
2013/11/03 职场文书
招商经理岗位职责
2013/11/16 职场文书
邀请函样本
2015/02/02 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python
详解PyTorch模型保存与加载
2022/04/28 Python
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers