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 相关文章推荐
phpmailer发送gmail邮件实例详解
Jun 24 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 PHP
PHP实现自动登入google play下载app report的方法
Sep 23 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
Dec 07 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
php封装的mysqli类完整实例
Oct 18 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
PHP数据对象映射模式实例分析
Mar 29 PHP
Laravel5.7 数据库操作迁移的实现方法
Apr 12 PHP
Laravel框架中集成MongoDB和使用详解
Oct 17 PHP
php实现微信和支付宝支付的示例代码
Aug 11 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
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
react路由配置方式详解
2017/08/07 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
微信小程序 生成携带参数的二维码
2019/10/23 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
K-近邻算法的python实现代码分享
2017/12/09 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
印度在线杂货店:bigbasket
2018/08/23 全球购物
如何进行有效的自我评价
2013/09/27 职场文书
计算机软件个人的自荐信范文
2013/12/01 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
简历的自荐信
2013/12/19 职场文书
我的理想演讲稿
2014/04/30 职场文书
广告宣传策划方案
2014/05/21 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
戒赌保证书
2015/05/11 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书