使用PHP获取网络文件的实现代码


Posted in PHP onJanuary 01, 2010
<?php 
//设置我们将要使用的文件 
$srcurl = "http://localhost/index.php"; 
$tempfilename = "tempindex.html"; 
$targetfilename = "index.html"; 
?> 
<HTML> 
<HEAD> 
<TITLE> 
Generating <?php echo("$targetfilename"); ?> 
</TITLE> 
</HEAD> 
<BODY> 
<P>Generating <?php echo("$targetfilename"); ?>...</P> 
<?php 
//首先删除上次操作可能遗留下来的临时文件。 
//这个过程可能会提示错误,所以我们使用@以防止报错。 
@unlink($tempfilename); 
//通过一个URL的请求装入动态版本。 
//在我们接收到相关内容之前,Web服务器会对PHP进行处理 
//(因为本质上我们是在模拟一个Web浏览器), 
//所以我们将获得的是一个静态的HTML页面。 
//'r'指出我们只要求对这个“文件”进行读操作。 
$dynpage = fopen($srcurl, 'r'); 
//处理错误 
if (!$dynpage) { 
echo("<P>Unable to load $srcurl. Static page ". 
"update aborted!</P>"); 
exit(); 
} 
//将这个URL的内容读入到一个PHP变量中。 
//指定我们将读取1MB的数据(超过这个数据量一般是意味着出错了)。 
$htmldata = fread($dynpage, 1024*1024); 
//当我们完成工作后,关闭到源“文件”的连接。 
fclose($dynpage); 
//打开临时文件(同时在这个过程中建立)以用来写入(注意'w'的用法). 
$tempfile = fopen($tempfilename, 'w'); 
//处理错误 
if (!$tempfile) { 
echo("<P>Unable to open temporary file ". 
"($tempfilename) for writing. Static page ". 
"update aborted!</P>"); 
exit(); 
} 
//将静态页面的数据写入到临时文件中 
fwrite($tempfile, $htmldata); 
//完成写入后,关闭临时文件。 
fclose($tempfile); 
//如果到了这里,我们应该已经成功地写好了一个临时文件, 
//现在我们可以用它来覆盖原来的静态页面了。 
$ok = copy($tempfilename, $targetfilename); 
//最后删除这个临时文件。 
unlink($tempfilename); 
?> 
<P>Static page successfully updated!</P> 
</BODY> 
</HTML>
PHP 相关文章推荐
php adodb连接mssql解决乱码问题
Jun 12 PHP
php中将时间差转换为字符串提示的实现代码
Aug 08 PHP
PHP spl_autoload_register实现自动加载研究
Dec 06 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
Jul 18 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
Sep 06 PHP
PHP操作MySQL事务实例
Nov 05 PHP
php实现递归与无限分类的方法
Feb 16 PHP
php简单socket服务器客户端代码实例
May 18 PHP
PHP微信刮刮卡 附微信接口
Jul 22 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP数据分析引擎计算余弦相似度算法示例
Aug 08 PHP
php中计算时间差的几种方法
Dec 31 #PHP
php 操作excel文件的方法小结
Dec 31 #PHP
PHP编程过程中需要了解的this,self,parent的区别
Dec 30 #PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
Dec 29 #PHP
PHP类的使用 实例代码讲解
Dec 28 #PHP
php 多线程上下文中安全写文件实现代码
Dec 28 #PHP
PHP 获取目录下的图片并随机显示的代码
Dec 28 #PHP
You might like
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
js+csss实现的一个带复选框的下拉框
2014/09/29 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
浅析JS异步加载进度条
2016/05/05 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
2018/03/08 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
js实现搜索栏效果
2018/11/16 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
护士的自我鉴定
2014/02/07 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js
Python使用DFA算法过滤内容敏感词
2022/04/22 Python
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android
vue3不同环境下实现配置代理
2022/05/25 Vue.js