使用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 上传文件的方法(类)
Jul 30 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
php笔记之:数据类型与常量的使用分析
May 14 PHP
php foreach正序倒序输出示例代码
Jul 01 PHP
Linux下php5.4启动脚本
Aug 03 PHP
Thinkphp中数据按分类嵌套循环实现方法
Oct 30 PHP
php随机生成数字字母组合的方法
Mar 18 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
Feb 20 PHP
PHP日志LOG类定义与用法示例
Sep 06 PHP
Yii框架应用组件用法实例分析
May 15 PHP
PHP基本语法
Mar 31 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实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
Django对models里的objects的使用详解
2019/08/17 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
全球最大的服务市场:Fiverr
2017/01/03 全球购物
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
高中地理教学反思
2014/01/29 职场文书
国培教师自我鉴定
2014/02/12 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
《祁黄羊》教学反思
2014/04/22 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
滞留工资返还协议书
2014/10/19 职场文书
2015年市场部工作总结
2015/04/30 职场文书
千万级用户系统SQL调优实战分享
2022/03/03 MySQL