【问题标题】:Copy a website with php [duplicate]用php复制一个网站[重复]
【发布时间】:2014-08-19 07:01:27
【问题描述】:

我不确定它是否可能,但我正在寻找一个 PHP 脚本来复制整个网站,这样我就可以将它保存在我的本地服务器上,并在我无法使用互联网时查看它所以很像

 <?php    
function copyDir($source,$dest) {    
if(is_file($source)) {    
$cpy= copy($source, $dest);    
return $cpy;    
}    
if(!is_dir($dest)) {     
mkdir ($dest); }     
$dir= dir($source);    
while (false !== $entry = $dir->read()) {     
 if ($entry == "." || $entry == "..") {    
continue; }    
if ($dest !== "$source/$entry") {       
copyDir("$source/$entry", "$dest/$entry");    
}     
}    
$dir->close();    
return true;    
} ?>    

但是要复制网站而不是目录.... 我希望这是有道理的

【问题讨论】:

  • “一个”整个网站?或“您的”整个网站。您在此处显示的方法都适用于您的本地文件系统,因此永远不会适用于外部站点。如果它是纯本地的,那么你肯定可以.. 虽然在那种情况下有人会想知道为什么你会用 php 来做......
  • 我还在学习网络开发,但并不总是有可用的互联网。就像我说的我还在学习和测试,有时我会卡住,不得不回去查看 w3schools 或 php.net 以刷新我对代码的记忆。所以我想复制这些网站,这样我就可以离线查看它们了......
  • 如果 w3schools 是您的基本信息来源,那么您就有麻烦了 :) 但是如果您只需要一些本地网站,那么有大量程序可以为您下载它们。 (尝试用谷歌搜索“网站下载器”之类的东西)。 PHP 绝对不是你想用来下载网站的东西。
  • 我认为 php 很可能是最简单的方法
  • 好的,我会试试的,谢谢 Damien

标签: php


【解决方案1】:

你问的不是微不足道的。您需要向相关站点发送请求,将源文件下载到文件中,然后您想要解析所有图像、脚本和样式表的 DOM,并下载所有这些,同时保持目录结构。

与你介绍的功能无关,只是在本地复制文件。

【讨论】:

  • 我们不能在所有网站上都这样做,他们可能在所有情况下都没有给予许可。如果您尝试使用 AJAX,则浏览器本身不支持 CORS
  • @LifeHacker 问题是关于 PHP,而不是 JavaScript。 PHP 不尊重 CORS。万一您感到困惑,DOM 不是 JavaScript 独有的。
【解决方案2】:

如上所述,您将需要解析所有 DOM,还需要寻找链接,然后解析所有这些。

而且,即使您做到了这一点,请注意您下载的某些内容可能是动态生成的或依赖于远程源。假设您已获得网站所有者的许可,为什么不直接要求提供 ZIP 或 tarball 格式的文件?

【讨论】:

    猜你喜欢
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2015-04-19
    • 2014-03-05
    • 2014-07-10
    • 2020-10-18
    相关资源
    最近更新 更多