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使用者状态管理功能的应用
Oct 09 PHP
PHP中通过加号合并数组的一个简单方法分享
Jan 27 PHP
探讨php中防止SQL注入最好的方法是什么
Jun 10 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
PHP中使用hidef扩展代替define提高性能
Apr 09 PHP
PHP实现简单的新闻发布系统实例
Jul 28 PHP
分享ThinkPHP3.2中关联查询解决思路
Sep 20 PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 PHP
Thinkphp实现站点静态化的方法详解
Mar 21 PHP
PHP实现的二分查找算法实例分析
Dec 19 PHP
PHP 获取客户端 IP 地址的方法实例代码
Nov 11 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 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中的字符串函数
2006/11/24 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
python 文件与目录操作
2008/12/24 Python
python修改操作系统时间的方法
2015/05/18 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
python flask搭建web应用教程
2019/11/19 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
如何利用python发送邮件
2020/09/26 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
大学生学年自我鉴定
2014/02/10 职场文书
公司董事任命书
2015/09/21 职场文书
Go语言基础函数基本用法及示例详解
2021/11/17 Golang
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB