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 相关文章推荐
基于pear auth实现登录验证
Feb 26 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
PHP中PDO基础教程 入门级
Sep 04 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
php获取字段名示例分享
Mar 03 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
PHP中使用循环实现的金字塔图形
Nov 08 PHP
使用PHP Socket 编程模拟Http post和get请求
Nov 25 PHP
PHP中的常见魔术方法功能作用及用法实例
Jul 01 PHP
PHP面向对象程序设计实例分析
Jan 26 PHP
CI框架中$this->load->library()用法分析
May 18 PHP
PHP实现的观察者模式实例
Jun 21 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中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
javascript中undefined的本质解析
2019/07/31 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
numpy中的ndarray方法和属性详解
2019/05/27 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
python模块导入的方法
2019/10/24 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
python连接mysql有哪些方法
2020/06/24 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
预防煤气中毒方案
2014/06/16 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
职代会闭幕词
2015/01/28 职场文书
商场收银员岗位职责
2015/04/07 职场文书
2015年营业员工作总结
2015/04/23 职场文书
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android