PHP请求远程地址设置超时时间的解决方法


Posted in PHP onOctober 29, 2016

php请求远程地址设置超时时间,主要讲解file_get_contents、fopen、curl这三个简单常用函数设置超时时间的方法,一般情况下建议使用curl,性能最好,效率也最高。

1、file_get_contents 请求超时设置

$timeout = array(
'http'=> array(
'timeout'=>5//设置一个超时时间,单位为秒
)
);
$ctx = stream_context_create($timeout);
$text = file_get_contents("https://3water.com/",0, $ctx);

2、fopen 请求超时设置

$timeout = array(
'http' => array(
'timeout' => 5 //设置一个超时时间,单位为秒
)
);
$ctx = stream_context_create($timeout);
if ($fp = fopen("https://3water.com/", "r", false, $ctx)) {
while( $c = fread($fp, 8192)) {
echo $c;
}
fclose($fp);
}

3、curl请求超时设置

CURL 是常用的访问HTTP协议接口的lib库,性能高,还有一些并发支持的功能等。

curl_setopt($ch, opt) 可以设置一些超时的设置,主要包括:

a 、CURLOPT_TIMEOUT 设置cURL允许执行的最长秒数。

b、CURLOPT_TIMEOUT_MS 设置cURL允许执行的最长毫秒数。

c、 CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则无限等待。

d、 CURLOPT_CONNECTTIMEOUT_MS 尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。e、 CURLOPT_DNS_CACHE_TIMEOUT 设置在内存中保存DNS信息的时间,默认为120秒。

$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']);

以上就是小编为大家带来的PHP请求远程地址设置超时时间的解决方法全部内容了,希望大家多多支持三水点靠木~

PHP 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
php FPDF类库应用实现代码
Mar 20 PHP
php 数组的一个悲剧?
May 11 PHP
PHP学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
PHP spl_autoload_register实现自动加载研究
Dec 06 PHP
php错误级别的设置方法
Jun 17 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
Jul 01 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
Dec 28 PHP
详解PHP的Yii框架中的Controller控制器
Mar 29 PHP
基于PHP制作验证码
Oct 12 PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 04 PHP
浅谈php处理后端&接口访问超时的解决方法
Oct 29 #PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 #PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
Oct 29 #PHP
浅谈PHP定义命令空间的几个注意点(推荐)
Oct 29 #PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
Oct 28 #PHP
PHP创建多级目录的两种方法
Oct 28 #PHP
PHP查询大量数据内存耗尽问题的解决方法
Oct 28 #PHP
You might like
我的论坛源代码(七)
2006/10/09 PHP
基于mysql的bbs设计(三)
2006/10/09 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
Laravel 队列使用的实现
2019/01/08 PHP
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
简单的python后台管理程序
2017/04/13 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
python贪吃蛇游戏代码
2020/04/18 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
NumPy中的维度Axis详解
2019/11/26 Python
python math模块的基本使用教程
2021/01/16 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
四个太阳教学反思
2014/02/01 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
检讨书模板
2015/01/29 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python