在PHP中计算文本差异

时间:2008-09-21 23:25:20

标签: php diff

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

8 个答案:

答案 0 :(得分:7)

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

PEAR Text_Diff - 用于执行和渲染文本差异的引擎

答案 1 :(得分:7)

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

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

答案 2 :(得分:7)

有一个很好的小Simplediff project on Github可以创建文本和HTML差异。

答案 3 :(得分:4)

this的输出是GNU diff格式。这可能就是你要找的东西。

答案 4 :(得分:2)

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

$diff = `diff $file1 $file2`;

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

答案 5 :(得分:2)

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

答案 6 :(得分:2)

我非常喜欢这个基于JavaScript的网络项目。

jsdifflib

答案 7 :(得分:0)

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

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