如何在PHP或JavaScript中合并文件的两个版本?

如何在PHP或JavaScript中合并文件的两个版本?,php,javascript,file,merge,version,Php,Javascript,File,Merge,Version,我正在尝试编写一个网站,允许多人同时处理一个文件。在这样做的过程中,我遇到的最大障碍是合并文件的新版本,即版本控制风格 我一直找不到任何内置JavaScript或PHP函数可以帮助我实现这一点。我找到的最接近的数组是array_diff,它实际上不是我需要的,因为它只返回其他数组中不存在的元素,如果我有一个单词数组,那么肯定会有重复;此外,array_diff会忽略某些内容显示的次数或其在文件中的位置 我已经研究了Levenshtein的距离算法,它确实是php内置的函数,但我不确定它是否是我需

我正在尝试编写一个网站,允许多人同时处理一个文件。在这样做的过程中,我遇到的最大障碍是合并文件的新版本,即版本控制风格

我一直找不到任何内置JavaScript或PHP函数可以帮助我实现这一点。我找到的最接近的数组是array_diff,它实际上不是我需要的,因为它只返回其他数组中不存在的元素,如果我有一个单词数组,那么肯定会有重复;此外,array_diff会忽略某些内容显示的次数或其在文件中的位置

我已经研究了Levenshtein的距离算法,它确实是php内置的函数,但我不确定它是否是我需要的。如果是这样,请告诉我,我会进一步调查

你知道有什么适合我需要的吗

编辑:


让我澄清一下。我并不是在设计一个版本控制系统。我只想合并文件,不想存储旧版本,等等。安装CVS或SVN或类似的东西是否仍然是我最好的选择,只是为了使用一个功能?

为什么要重新发明轮子?我将使用
exec
和“diff”来查找两个文件之间的差异,并从那里开始工作

不过,这也不能解决cvs无法解决的问题:如果发生冲突(因为两个或更多的人更改了同一行代码),您必须手动修复这些冲突(或者让编辑器来解决)

但话说回来:为什么不立即使用CVS并与之一起使用web查看器呢?

e、 g.

为什么要重新发明轮子?我将使用
exec
和“diff”来查找两个文件之间的差异,并从那里开始工作

不过,这也不能解决cvs无法解决的问题:如果发生冲突(因为两个或更多的人更改了同一行代码),您必须手动修复这些冲突(或者让编辑器来解决)

但话说回来:为什么不立即使用CVS并与之一起使用web查看器呢?

e、 g.

mercurial、subversion、cvs。。。确实不要重新发明轮子。

mercurial、subversion、cvs。。。确实不要重新发明轮子。

核心算法是

在类似的程序中用于生成并排视图

实际上,我制作了一个基于web的版本,但我在同步两个窗口的滚动时遇到了困难,他们使用了一个更笨重的解决方案。

核心算法是

在类似的程序中用于生成并排视图

实际上,我制作了一个基于web的版本,但我在同步两个窗口的滚动时遇到了困难,因此它们采用了更笨重的解决方案。

参见