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版(5)
Oct 09 PHP
非常不错的MySQL优化的8条经验
Mar 24 PHP
php 获取完整url地址
Dec 20 PHP
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
Jun 18 PHP
php日历制作代码分享
Jan 20 PHP
php中socket的用法详解
Oct 24 PHP
php获取发送给用户的header信息的方法
Mar 16 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
thinkPHP显示不出验证码的原因与解决方法分析
May 20 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
ThinkPHP框架实现FTP图片上传功能示例
Apr 08 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下常用正则表达式整理
2010/10/26 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
vue组件创建的三种方式小结
2020/02/03 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
2020/03/04 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
python常见的格式化输出小结
2016/12/15 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
教师爱岗敬业演讲稿
2014/05/05 职场文书
医师定期考核实施方案
2014/05/07 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
幼儿教师个人总结
2015/02/05 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
python编写函数注意事项总结
2021/03/29 Python
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL