如何使用PHP获取网络上文件

  • A+
所属分类:PHP编程

如何使用PHP获取网络上文件

  1. <!-- generateindex.php -->
  2. <?php
  3. //设置我们将要使用的文件
  4. $srcurl = "http://localhost/index.php";
  5. $tempfilename = "tempindex.html";
  6. $targetfilename = "index.html";
  7. ?>
  8. <HTML>
  9. <HEAD>
  10. <TITLE>
  11. Generating <?php echo("$targetfilename"); ?>
  12. </TITLE>
  13. </HEAD>
  14. <BODY>
  15. <P>Generating <?php echo("$targetfilename"); ?>...</P>
  16. <?php
  17. //首先删除上次操作可能遗留下来的临时文件。
  18. //这个过程可能会提示错误,所以我们使用@以防止报错。
  19. @unlink($tempfilename);
  20. //通过一个URL的请求装入动态版本。
  21. //在我们接收到相关内容之前,Web服务器会对PHP进行处理
  22. //(因为本质上我们是在模拟一个Web浏览器),
  23. //所以我们将获得的是一个静态的HTML页面。
  24. //'r'指出我们只要求对这个“文件”进行读操作。
  25. $dynpage = fopen($srcurl, 'r');
  26. //处理错误
  27. if (!$dynpage) {
  28. echo("<P>Unable to load $srcurl. Static page ".
  29. "update aborted!</P>");
  30. exit();
  31. }
  32. //将这个URL的内容读入到一个PHP变量中。
  33. //指定我们将读取1MB的数据(超过这个数据量一般是意味着出错了)。
  34. $htmldata = fread($dynpage, 1024*1024);
  35. //当我们完成工作后,关闭到源“文件”的连接。
  36. fclose($dynpage);
  37. //打开临时文件(同时在这个过程中建立)以用来写入(注意'w'的用法).
  38. $tempfile = fopen($tempfilename, 'w');
  39. //处理错误
  40. if (!$tempfile) {
  41. echo("<P>Unable to open temporary file ".
  42. "($tempfilename) for writing. Static page ".
  43. "update aborted!</P>");
  44. exit();
  45. }
  46. //将静态页面的数据写入到临时文件中
  47. fwrite($tempfile, $htmldata);
  48. //完成写入后,关闭临时文件。
  49. fclose($tempfile);
  50. //如果到了这里,我们应该已经成功地写好了一个临时文件,
  51. //现在我们可以用它来覆盖原来的静态页面了。
  52. $ok = copy($tempfilename, $targetfilename);
  53. //最后删除这个临时文件。
  54. unlink($tempfilename);
  55. ?>
  56. <P>Static page successfully updated!</P>
  57. </BODY>
  58. </HTML>