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 相关文章推荐
php adodb连接mssql解决乱码问题
Jun 12 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
Mar 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
Jun 23 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Jun 26 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
PHP实现简单汉字验证码
Jul 28 PHP
PHP curl模拟登录带验证码的网站
Nov 30 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 PHP
PHP内存溢出优化代码详解
Feb 26 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/08/08 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
python集合常见运算案例解析
2019/10/17 Python
Python解析json代码实例解析
2019/11/25 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
城市轨道专业个人求职信范文
2013/09/23 职场文书
学习十八大的心得体会
2014/09/01 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android