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学习散记_编码(json_encode 中文不显示)
Nov 10 PHP
openPNE常用方法分享
Nov 29 PHP
关于PHP递归算法和应用方法介绍
Apr 15 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 PHP
支持png透明图片的php生成缩略图类分享
Feb 08 PHP
Php-Redis安装测试笔记
Mar 05 PHP
在Linux系统下一键重新安装WordPress的脚本示例
Jun 30 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
PHP闭包定义与使用简单示例
Apr 13 PHP
php实现表单提交上传文件功能
May 28 PHP
php提供实现反射的方法和实例代码
Sep 17 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
桌面中心(一)创建数据库
2006/10/09 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
繁简字转换功能
2006/07/19 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[01:13]这,就是刀塔
2014/07/16 DOTA
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
python实现汉诺塔算法
2021/03/01 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
简单了解django索引的相关知识
2019/07/17 Python
在Django中实现添加user到group并查看
2019/11/18 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
python剪切视频与合并视频的实现
2020/03/03 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
机械专业应届毕业生自荐书
2014/06/12 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
党员带头倡议书
2015/04/29 职场文书
赢在中国观后感
2015/06/02 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
初中数学课堂教学反思
2016/02/17 职场文书