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
Dec 23 PHP
一步一步学习PHP(4) php 函数 补充2
Feb 15 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
PHP提交表单失败后如何保留已经填写的信息
Jun 20 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
Dec 01 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 PHP
Laravel 5框架学习之Eloquent 关系
Apr 09 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
学习php设计模式 php实现命令模式(command)
Dec 08 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 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 引用文件技巧
2010/03/02 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
php格式文件打开的四种方法
2018/02/24 PHP
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
python实现俄罗斯方块游戏
2020/03/25 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
python3让print输出不换行的方法
2020/08/24 Python
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
家长写给孩子的评语
2014/04/18 职场文书
党性教育心得体会
2014/09/03 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
会议邀请函
2015/01/30 职场文书
西游降魔篇观后感
2015/06/15 职场文书
煤矿隐患排查制度
2015/08/05 职场文书
2016年全国爱牙日宣传活动总结
2016/04/05 职场文书