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 相关文章推荐
Zend 输出产生XML解析错误
Mar 03 PHP
str_replace只替换一次字符串的方法
Apr 09 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
php删除左端与右端空格的方法
Nov 29 PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 PHP
PHP获取真实IP及IP模拟方法解析
Nov 24 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
基于PHP与XML的PDF文档生成技术
2006/10/09 PHP
PHP的加密方式及原理
2012/06/14 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
php常用正则函数实例小结
2016/12/29 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
2010年最佳jQuery插件整理
2010/12/06 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
pycharm快捷键汇总
2020/02/14 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
python 爬虫请求模块requests详解
2020/12/04 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
外语学院毕业生的自我鉴定
2013/11/28 职场文书
教师的实习鉴定
2013/12/15 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
一分钟演讲稿
2014/04/30 职场文书
英文演讲稿
2014/05/15 职场文书
机电专业求职信
2014/06/14 职场文书
初级职称评定工作总结
2015/08/13 职场文书