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 相关文章推荐
教你如何把一篇文章按要求分段
Oct 09 PHP
通用PHP动态生成静态HTML网页的代码
Mar 04 PHP
php抓取https的内容的代码
Apr 06 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
PHP写API输出的时用echo的原因详解
Apr 28 PHP
php简单计算权重的方法示例【适合抽奖类应用】
Jun 10 PHP
深入学习微信网址链接解封的防封原理visit_type
Aug 15 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 PHP
tp5.1 框架数据库-数据集操作实例分析
May 26 PHP
PHP之header函数详解
Mar 02 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 中英文语言转换类
2011/09/07 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
JS继承用法实例分析
2015/02/05 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
2018/08/22 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
js获取form表单中name属性的值
2019/02/27 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
15分钟上手vue3.0(小结)
2020/05/20 Javascript
详解Python中的__new__()方法的使用
2015/04/09 Python
mac下给python3安装requests库和scrapy库的实例
2018/06/13 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
测绘工程专业个人自我评价
2013/12/01 职场文书
筑梦中国心得体会
2016/01/18 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang