首先解決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('http://www.example.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('http://www.example.com', $data);

注意檔案頭的Set_time_out否則整個檔案都得超時了

file_get_contents高級用法相关推荐

  1. java实现鼠标宏编程_我應該如何編程高級java遊戲中的鼠標/鍵輸入?

    我是一名自學成才的程序員,所以我不知道正確的做事方式.我製作了諸如小行星和蛇之類的簡單遊戲,但在這些遊戲中,您可以輕鬆修改鍵事件功能中的變量.這裏是我在我的簡單的小行星遊戲做到了:我應該如何編程高級j ...

  2. 以非root 用戶安裝並啟動高級單服務器版

    WebSphere Application Server,高級單服務器4.0 版可以在Red Hat Linux 7.1 與SuSE Linux 7.1 上運行.根據您的發行版本(distributi ...

  3. 【性能测试】如何用一条命令完全掌握linux系统性能监控(top高阶用法)

    目  录 一 引 言 二 top命令高阶用法 场景1:采样3次,采样间隔为10s: 场景2:采样2h,采样间隔为10s,性能数据保存到test.csv文件中: 一 引 言 熟悉CentOS linux ...

  4. android layerlist bitmap,android shape类似的 另一个 高端用法:layer-list

    android shape类似的 另一个 高端用法:layer-list : 简介: 将多个图片或上面两种效果按照顺序层叠起来 " <?xml version="1.0&qu ...

  5. ifdef的用法_chisel 高阶用法简介--rocket-chip generator

    本文将介绍chisel的三个高阶用法:diplomacy,cake pattern和参数化. diplomacy 什么是diplomacy?互联参数的自动协商. 痛点在哪里: 传统的SoC集成中,互联 ...

  6. HTML中设置行高的属性是,line-height属性(行高标签用法)

    line-height属性 1.line-height特点设置行间的距离(行高),而行距离的尺寸分配是line-height与font-size的计算值之差(在CSS中成为"行距离" ...

  7. mybatis第三话 - mybatis的高端用法你会吗?

    前面了解了springboot + mybatis的单数据源和多数据源的集成已经使用,本篇文章来聊聊mybatis的高端用法吧 1.环境搭配 1.1 pom依赖 基于springboot 2.5.6, ...

  8. Peewee 高阶用法

    Peewee 高阶用法 前言 本文介绍的Peewee方法语法基于PostgreSQL 高阶用法 元组多条件查询 from peewee import Tuple e.g.: 1. model.sele ...

  9. day67 ORM模型之高阶用法整理,聚合,分组查询以及F和Q用法,附练习题整理

    归纳总结的笔记: day67ORM特殊的语法一个简单的语法 --翻译成--> SQL语句语法:1. 操作数据库表 创建表.删除表.修改表2. 操作数据库行 增.删.改.查怎么连数据库:需要手动创 ...

最新文章

  1. WCDMA系统中的扰码规划
  2. 在iOS端如何使用Charles用作http调试
  3. Android 软键盘弹出时把布局顶上去,控件乱套解决方法
  4. PyQt GUI--信号与槽
  5. CVPR2021-PaperWithCode
  6. 申报控件检测未通过_详解高企申报未通过原因!
  7. 技术选型方案怎么写_活动运营方案怎么写?
  8. pythonzip是迭代器_Python迭代器和zip
  9. C++ 泛型编程(一):模板基础:函数模板、类模板、模板推演成函数的机制、模板实例化、模板匹配规则
  10. spring和mybatis结合做简单的增删查改系统_springbootamp;amp;vue简单的景点信息管理系统...
  11. dicom文件转raw以及mhd时一些注意事项总结
  12. osm数据下载 python_用Python编写小工具下载OSM路网数据
  13. python上传Excel文件
  14. 购买周期 python-用Python实现一个基于EG协整法的跨周期套利策略
  15. 音视频会议理论网络参数
  16. pt100铂电阻低温温度传感器的特点
  17. AD软件——设计总结(差分布线,蛇形布线)
  18. PMP-总价合同、固定合同、工料合同对比
  19. 【python】2行代码实现gif动图压缩(pygifsicle)
  20. 怎么获取公众号二维码?

热门文章

  1. matlab安装_走进数模(三)MATLAB安装
  2. 初试BMap时出现BMap is not defined错误(HTML页面)
  3. jmh气象传真图网站_在冬奥滑雪场,他凭着气象信息,念好一本生意经
  4. 晶振波形不是正弦波_10天电子入门-电感/晶振/声音
  5. python structure_GitHub - CYZYZG/Data_Structure_with_Python: 这是我在学习《基于Python的数据结构》的时候的笔记与代码...
  6. 孔兵 库卡机器人_库卡机器人中华区CEO孔兵:机器人是制造业升级的关键
  7. java源码搭建教程_CentOS 7 搭建源码包搭建LNMP环境
  8. easyexcel 设置标题_EasyExcel,让 excel 导入导出更加简单
  9. python 字符串大小写相关函数
  10. 20131005第四章,第五章内容整理与归纳。