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_Flame(Version:Progress)的原代码
Oct 09 PHP
把PHP安装为Apache DSO
Oct 09 PHP
php数组应用之比较两个时间的相减排序
Aug 18 PHP
php适配器模式介绍
Aug 14 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
不使用php api函数实现数组的交换排序示例
Apr 13 PHP
php视频拍照上传头像功能实现代码分享
Oct 08 PHP
PHP表单数据写入MySQL数据库的代码
May 31 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
Oct 24 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 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中IP地址与整型数字互相转换详解
2014/08/20 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
2015/09/23 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
vue项目查看vue版本及cli版本的实现方式
2020/10/24 Javascript
python 算法 排序实现快速排序
2012/06/05 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python中常见的异常总结
2018/02/20 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
Django如何批量创建Model
2020/09/01 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
《大海那边》教学反思
2014/04/09 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
一文搞懂python异常处理、模块与包
2021/06/26 Python