计算PHP中的文本差异

时间:2020-03-06 14:31:05  来源:igfitidea点击:

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

解决方案

这完全取决于意思和我们想做什么,但是有

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

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

编辑:我应该添加xdiff似乎尚未发布。我们必须从源代码进行构建才能使用它。

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

$diff = `diff $file1 $file2`;

从那里开始,如果我们想完全使用diff信息,则需要解析,而此解决方案可能不是我们想要的。在这种情况下,我建议我们查看上面提到的PEAR库或者搜索类似的文本解析库。

MediaWiki的diff引擎是开源的(就像其他引擎一样)。如果我们喜欢Wikipedia处理文本差异的方式,则可能是解决方案。

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

jsdifflib

其输出为GNU diff格式。这可能是我们要寻找的。

Github上有一个不错的小型Simplediff项目,它创建文本和HTML差异。