15

是否有任何库(第三方或内置)PHP来计算文本差异?

4

8 回答 8

7

这完全取决于你的意思和你想做什么,但有

PEAR Text_Diff - 用于执行和呈现文本差异的引擎

于 2008-09-21T23:31:20.497 回答
7

什么样的差异?文件差异?有array_diff()作用于数组。然后还有xdiff,它“使您能够创建和应用包含不同文件修订版本之间差异的补丁文件。”。后者作用于文件或字符串。

编辑:我应该添加 xdiff 似乎还没有发布。您必须从源代码构建才能使用它。

于 2008-09-21T23:33:23.847 回答
7

Github 上有一个漂亮而小巧的Simplediff 项目,它可以创建文本和 HTML 差异。

于 2010-08-26T13:42:08.337 回答
4

的输出是 GNU diff 格式。这可能是您正在寻找的东西。

于 2008-09-22T04:20:22.270 回答
2

这真的取决于你想要什么结果。如果您只想获取两组文本的 diff 文件,您可能会发现只使用外部 diff 命令更简单(这当然完全取决于您正在开发的环境)。

$diff = `diff $file1 $file2`;

如果您想从那里完全使用差异信息,则需要解析,并且此解决方案可能不是您所追求的。在这种情况下,我建议查看上面提到的 PEAR 库或搜索类似的文本解析库。

于 2008-09-21T23:43:59.487 回答
2

MediaWiki 的差异引擎是开源的(就像它的其余部分一样)。如果您喜欢 Wikipedia 处理文本差异的方式,它可能是您的解决方案。

于 2008-09-22T00:19:06.607 回答
2

我真的很喜欢这个基于 JavaScript 的 web 项目。

jsdifflib

于 2008-09-22T01:24:29.057 回答
0

不是内置的,但我喜欢它,因为它有一个很好的界面来测试网站上的所有内容,而且在高粒度级别上它似乎比 Text_Diff 快一些。

http://www.raymondhill.net/finediff/viewdiff-ex.php

于 2012-12-19T00:25:07.073 回答