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 相关文章推荐
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
php url地址栏传中文乱码解决方法集合
Jun 25 PHP
PHP 设置MySQL连接字符集的方法
Jan 02 PHP
php获取字段名示例分享
Mar 03 PHP
PHP解析html类库simple_html_dom的转码bug
May 22 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
php转换颜色为其反色的方法
Apr 27 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
php实现统计目录文件大小的函数
Dec 25 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 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/03/24 PHP
ASP Json Parser修正版
2009/12/06 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Python饼状图的绘制实例
2019/01/15 Python
Python collections模块的使用方法
2020/10/09 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
python实现图片转字符画
2021/02/19 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
党员思想汇报范文
2013/12/30 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
长城导游词
2015/01/30 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
八年级英语教学反思
2016/02/15 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
Python爬取某拍短视频
2021/06/11 Python
SpringBoot生成License的实现示例
2021/06/16 Java/Android
pycharm无法安装cv2模块问题
2022/05/20 Python
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers