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('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高級用法相关推荐
- java实现鼠标宏编程_我應該如何編程高級java遊戲中的鼠標/鍵輸入?
我是一名自學成才的程序員,所以我不知道正確的做事方式.我製作了諸如小行星和蛇之類的簡單遊戲,但在這些遊戲中,您可以輕鬆修改鍵事件功能中的變量.這裏是我在我的簡單的小行星遊戲做到了:我應該如何編程高級j ...
- 以非root 用戶安裝並啟動高級單服務器版
WebSphere Application Server,高級單服務器4.0 版可以在Red Hat Linux 7.1 與SuSE Linux 7.1 上運行.根據您的發行版本(distributi ...
- 【性能测试】如何用一条命令完全掌握linux系统性能监控(top高阶用法)
目 录 一 引 言 二 top命令高阶用法 场景1:采样3次,采样间隔为10s: 场景2:采样2h,采样间隔为10s,性能数据保存到test.csv文件中: 一 引 言 熟悉CentOS linux ...
- android layerlist bitmap,android shape类似的 另一个 高端用法:layer-list
android shape类似的 另一个 高端用法:layer-list : 简介: 将多个图片或上面两种效果按照顺序层叠起来 " <?xml version="1.0&qu ...
- ifdef的用法_chisel 高阶用法简介--rocket-chip generator
本文将介绍chisel的三个高阶用法:diplomacy,cake pattern和参数化. diplomacy 什么是diplomacy?互联参数的自动协商. 痛点在哪里: 传统的SoC集成中,互联 ...
- HTML中设置行高的属性是,line-height属性(行高标签用法)
line-height属性 1.line-height特点设置行间的距离(行高),而行距离的尺寸分配是line-height与font-size的计算值之差(在CSS中成为"行距离" ...
- mybatis第三话 - mybatis的高端用法你会吗?
前面了解了springboot + mybatis的单数据源和多数据源的集成已经使用,本篇文章来聊聊mybatis的高端用法吧 1.环境搭配 1.1 pom依赖 基于springboot 2.5.6, ...
- Peewee 高阶用法
Peewee 高阶用法 前言 本文介绍的Peewee方法语法基于PostgreSQL 高阶用法 元组多条件查询 from peewee import Tuple e.g.: 1. model.sele ...
- day67 ORM模型之高阶用法整理,聚合,分组查询以及F和Q用法,附练习题整理
归纳总结的笔记: day67ORM特殊的语法一个简单的语法 --翻译成--> SQL语句语法:1. 操作数据库表 创建表.删除表.修改表2. 操作数据库行 增.删.改.查怎么连数据库:需要手动创 ...
最新文章
- WCDMA系统中的扰码规划
- 在iOS端如何使用Charles用作http调试
- Android 软键盘弹出时把布局顶上去,控件乱套解决方法
- PyQt GUI--信号与槽
- CVPR2021-PaperWithCode
- 申报控件检测未通过_详解高企申报未通过原因!
- 技术选型方案怎么写_活动运营方案怎么写?
- pythonzip是迭代器_Python迭代器和zip
- C++ 泛型编程(一):模板基础:函数模板、类模板、模板推演成函数的机制、模板实例化、模板匹配规则
- spring和mybatis结合做简单的增删查改系统_springbootamp;amp;vue简单的景点信息管理系统...
- dicom文件转raw以及mhd时一些注意事项总结
- osm数据下载 python_用Python编写小工具下载OSM路网数据
- python上传Excel文件
- 购买周期 python-用Python实现一个基于EG协整法的跨周期套利策略
- 音视频会议理论网络参数
- pt100铂电阻低温温度传感器的特点
- AD软件——设计总结(差分布线,蛇形布线)
- PMP-总价合同、固定合同、工料合同对比
- 【python】2行代码实现gif动图压缩(pygifsicle)
- 怎么获取公众号二维码?
热门文章
- matlab安装_走进数模(三)MATLAB安装
- 初试BMap时出现BMap is not defined错误(HTML页面)
- jmh气象传真图网站_在冬奥滑雪场,他凭着气象信息,念好一本生意经
- 晶振波形不是正弦波_10天电子入门-电感/晶振/声音
- python structure_GitHub - CYZYZG/Data_Structure_with_Python: 这是我在学习《基于Python的数据结构》的时候的笔记与代码...
- 孔兵 库卡机器人_库卡机器人中华区CEO孔兵:机器人是制造业升级的关键
- java源码搭建教程_CentOS 7 搭建源码包搭建LNMP环境
- easyexcel 设置标题_EasyExcel,让 excel 导入导出更加简单
- python 字符串大小写相关函数
- 20131005第四章,第五章内容整理与归纳。