PHP中file_get_contents高?用法实例


Posted in PHP onSeptember 24, 2014

本文实例讲述了PHP中file_get_contents高级用法,分享给大家供大家参考。具体分析如下:

首先解决file_get_contents的超时问题,在超时返回错误后就象js中的settimeout那样进行一次尝试,错误超过3次或者5次后就确认为无法连线伺服器而彻底放弃。
这?就简单介绍两种解决方法:

一、增加超时的时间限制

注意:set_time_limit只是设定你的PHP程式的超时时间,而不是file_get_contents函数读取URL的超时时间。

我一开始以为set_time_limit也能影响到file_get_contents,后来经测试是无效的。真正的修改file_get_contents延时可以用resource $context的timeout参数:

PHP程序代码如下:

$opts = array(
    'http'=>array(
      'method'=>"GET",
      'timeout'=>60,
    )
);

$context = stream_context_create($opts);

$html =file_get_contents('https://3water.com', false, $context);
fpassthru($fp);

二、多次尝试

PHP程序代码如下:

$cnt=0;
while($cnt < 3 && ($str=@file_get_contents('http...'))===FALSE){
   $cnt++;
}

以上方法对付超时已经OK了。接下来演示一下用file_get_contents实现Post,如下:
PHP程序代码

function Post($url, $post = null){
    $context = array();
    if (is_array($post)) {
      ksort($post);

      $context['http'] = array (
        'timeout'=>60,
        'method' => 'POST',
        'content' => http_build_query($post, '', '&'),
       );
    }

    return file_get_contents($url, false, stream_context_create($context));
}

$data = array (
    'name' => 'test',
    'email' => 'test@gmail.com',
    'submit' => 'submit',
);

echo Post('https://3water.com', $data);

注意文档头的Set_time_out否则整个文档都得超时了。

希望本文所述对大家php程序设计的学习有所帮助。

PHP 相关文章推荐
简单的用PHP编写的导航条程序
Oct 09 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 PHP
ThinkPHP表单自动验证实例
Oct 13 PHP
php中adodbzip类实例
Dec 08 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
深入解析PHP中foreach语句控制数组循环的用法
Nov 30 PHP
PHP构造二叉树算法示例
Jun 21 PHP
Laravel框架中自定义模板指令总结
Dec 17 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
Jan 15 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
TP5框架安全机制实例分析
Apr 05 PHP
php实现的Cookies操作类实例
Sep 24 #PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
Sep 24 #PHP
php过滤html标记属性类用法实例
Sep 23 #PHP
php广告加载类用法实例
Sep 23 #PHP
php实现根据url自动生成缩略图的方法
Sep 23 #PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 #PHP
PHP图片库imagemagick安装方法
Sep 23 #PHP
You might like
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
PDO::quote讲解
2019/01/29 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
python人人网登录应用实例
2014/09/26 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
html5菜单折纸效果
2014/04/22 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
毕业生个人的求职信范文
2013/12/03 职场文书
四议两公开实施方案
2014/03/28 职场文书
人力资源职位说明书
2014/07/29 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
python实现会员信息管理系统(List)
2022/03/18 Python