Php 复制网站的最佳方法

Php 复制网站的最佳方法,php,javascript,jquery,html,replication,Php,Javascript,Jquery,Html,Replication,我最近为我的一个客户创建了一个目录。该网站是完整的,但他想要一个复制版本的网站,以便他可以测试该网站,并学习如何使用它 要完全复制他的网站需要几个小时,因为我必须更改网站中的每个超链接和URL 由于我的客户有点急迫,希望尽快完成,我想知道是否有可能创建一个测试网站,并添加一点javascript,每次都会替换他的URL(直到我创建一个完整的测试解决方案?) 例如,如果是: <a href="www.mydomain.com/contact-us">Test</a>

我最近为我的一个客户创建了一个目录。该网站是完整的,但他想要一个复制版本的网站,以便他可以测试该网站,并学习如何使用它

要完全复制他的网站需要几个小时,因为我必须更改网站中的每个超链接和URL

由于我的客户有点急迫,希望尽快完成,我想知道是否有可能创建一个测试网站,并添加一点javascript,每次都会替换他的URL(直到我创建一个完整的测试解决方案?)

例如,如果是:

<a href="www.mydomain.com/contact-us">Test</a>

它将取代它:

<a href="www.mydomain.com/test/contact-us"></a>

这可能吗?
在我创建一个完整的测试解决方案之前,是否建议暂时使用此方法?

您确实应该使用相对路径,以便文件可以相互交互,而不管文件位于何处

也就是说,当您将链接设置为相对链接而不是绝对链接时,您可以暂时使用以下快速JS解决方案:

$("a").each(function() {
  var href = this.href;
  href = href.replace("mydomain.com/", "mydomain.com/test/");
  this.href = href;
});

您确实应该使用相对路径,这样文件就可以相互交互,而不管文件位于何处

也就是说,当您将链接设置为相对链接而不是绝对链接时,您可以暂时使用以下快速JS解决方案:

$("a").each(function() {
  var href = this.href;
  href = href.replace("mydomain.com/", "mydomain.com/test/");
  this.href = href;
});

当然,使用javascript整理超链接是可能的,特别是使用像jQuery这样的框架会非常容易

$('a').each(Function(e){
 e.attr('href', e.attr('href').replace(/http:\/\/mainsite.com/gi, 'http://newsite.com'));
});

希望css文件、链接HREF等中的URL是相对的,否则您也需要更改它们。在这一点上,php解决方案将更合适。

当然可以使用javascript整理超链接,特别是使用jQuery这样的框架将非常容易

$('a').each(Function(e){
 e.attr('href', e.attr('href').replace(/http:\/\/mainsite.com/gi, 'http://newsite.com'));
});

希望css文件、链接HREF等中的URL是相对的,否则您也需要更改它们。此时,php解决方案更合适。

wget命令行实用程序有一个
--convert links
选项。如果使用该选项下载网站,
wget
将以“本地浏览工作可靠”的方式转换链接。
wget
命令行实用程序有一个
--convert links
选项。如果使用该选项下载网站,
wget
将以“本地浏览工作可靠”的方式转换链接。

在记事本++或任何支持文件替换的编辑器中打开网站文件,然后通过文件进行替换(N++将自动为您执行此操作),用配置变量替换实时URL,然后根据测试站点的需要设置URL变量


现在您有了URL的配置变量,如果客户端想要更改域或您想在其他地方部署,这将很容易。

在记事本++或任何支持文件替换的编辑器中打开站点文件,然后通过文件进行替换(N++将自动为您执行此操作),用配置变量替换实时URL,然后根据测试站点的需要设置URL变量


现在您有了URL的配置变量,如果客户端想要更改域或您想要在其他地方部署,这将很容易。

“我必须更改网站中的每个超链接和URL”-为什么?你没有使用相对URL吗?如果你所有的链接、css和javascript引用都是相对路径,那么网站所在的位置应该不会有什么不同。你的开发策略是什么样的?您是否有测试代码的开发服务器?也许你可以让你的客户来处理这个问题。另一方面:让这成为未来网络发展的一个教训。始终确保(基本)url是可配置的,这样您就不必每次将站点复制到其他位置时都对其进行更改。这可能需要5分钟而不是5小时。作为快速修复,请在记事本++中打开站点文件,然后通过文件进行替换(N++将自动为您执行此操作),用配置变量替换实时URL,然后根据测试站点的需要设置URL变量。“我必须更改网站中的每个超链接和URL”-为什么?你没有使用相对URL吗?如果你所有的链接、css和javascript引用都是相对路径,那么网站所在的位置应该不会有什么不同。你的开发策略是什么样的?您是否有测试代码的开发服务器?也许你可以让你的客户来处理这个问题。另一方面:让这成为未来网络发展的一个教训。始终确保(基本)url是可配置的,这样您就不必每次将站点复制到其他位置时都对其进行更改。这可能需要5分钟而不是5小时。作为快速修复,请在记事本++中打开站点文件,然后通过文件进行替换(N++将自动为您执行此操作),用配置变量替换实时URL,然后根据测试站点的需要设置URL变量。
a
应该像
$('a')一样引用。每个
a
都应该像$('a')一样引用。每个