在PHP中计算文本差异

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

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

编辑:我应该添加xdiff不会出现在发行版中。 您必须从源代码构build才能使用它。

Github上有一个很好的小Simplediff项目,可以创build文本和HTML差异。

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

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

这是GNU diff格式的输出。 这可能是你在找什么。

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

 $diff = `diff $file1 $file2`; 

从那里,如果你想使用差异信息,你需要parsing,这个解决scheme可能不是你所追求的。 在这种情况下,我build议看一下上面提到的PEAR库或者search一个类似的文本parsing库。

MediaWiki的diff引擎是开源的(就像其余的一样)。 如果你喜欢维基百科处理文本差异的方式,它可能是一个解决scheme。

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

jsdifflib

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

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