使用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函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
用PHP实现Ftp用户的在线管理
Feb 16 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
Jun 05 PHP
探讨如何把session存入数据库
Jun 07 PHP
10个php函数实用却不常见
Oct 13 PHP
PHP中的switch语句的用法实例详解
Oct 21 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
Oct 21 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
Oct 21 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
Yii2 rbac权限控制操作步骤实例教程
Apr 29 PHP
ThinkPHP表单令牌错误的相关解决方法分析
May 20 PHP
PHP convert_uudecode()函数讲解
Feb 14 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
在线短消息收发的程序,不用数据库
2006/10/09 PHP
PHP把小数转成整数3种方法
2014/06/30 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
JavaScript访问样式表代码
2010/10/15 Javascript
精通Javascript系列之数值计算
2011/06/07 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
2014/07/21 Javascript
jquery图片切换插件
2015/03/16 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
vue生命周期实例小结
2018/08/15 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
python numpy实现rolling滚动案例
2020/06/08 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
物流仓储实习自我鉴定
2013/09/25 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers