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 和 COM
Oct 09 PHP
一些常用的php函数
Dec 06 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
php入门学习知识点四 PHP正则表达式基本应用
Jul 14 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
php实现12306余票查询、价格查询示例
Apr 17 PHP
ThinkPHP分组下自定义标签库实例
Nov 01 PHP
php显示时间常用方法小结
Jun 05 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 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 缓存函数代码
2008/08/27 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
Ajax 数据请求的简单分析
2011/04/05 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
Python实现句子翻译功能
2017/11/14 Python
django的登录注册系统的示例代码
2018/05/14 Python
快速查找Python安装路径方法
2020/02/06 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
机械系大学毕业生推荐信
2013/11/27 职场文书
汽车维修专业个人求职信范文
2014/01/01 职场文书
生日寄语大全
2014/04/08 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
2014年电厂工作总结
2014/12/04 职场文书
大学生英文求职信范文
2015/03/19 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS
详解Python如何批量采集京东商品数据流程
2022/01/22 Python
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫
Python绘制散乱的点构成的图的方法
2022/04/21 Python