PHP如何实现获取网络上的文件?
2014-08-21来源:易贤网

PHP可以获取网络上的文件吗?PHP如何实现获取网络上的文件?请看实例代码:

<!-- generateindex.php -->

<?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>

更多信息请查看IT技术专栏

推荐信息