2011-11-02 110 views
1

我试图添加一个功能来生成2 20000个字符的文本部分之间的差异报告。我已经做了一些谷歌搜索,我听说梨的差异库 - 已经停产 - 发现这个:https://github.com/paulgb/simplediff/blob/5bfe1d2a8f967c7901ace50f04ac2d9308ed3169/simplediff.php在php中使用字符串/段落/文档比较

理想情况下,我想看看什么被删除,编辑或添加,并能够显示用户。是否有任何图书馆或简单的方法来完成这一点,你可能知道?

+0

这个功能是否可以用于不断的基础,还是一次性的事情?如果一次性使用,我会将这两个文件添加到版本控制,然后将文件相互区分。 –

+0

这将是我们的客户的需求,所以它会一直在 – Webnet

+0

检查CakePHP和Zend框架,他们可能有一些在他们的库中处理这种情况。另一种解决方案可能是Lucene/Solr,但需要更多时间才能升级。 –

回答

0

我使用此代码在现场的项目 http://svn.geograph.org.uk/svn/branches/british-isles/libs/3rdparty/simplediff.inc.php

示例使用 http://svn.geograph.org.uk/svn/branches/british-isles/public_html/article/diff.php

但代码很简单

$a1 = explode("\n",$file1); 
$a2 = explode("\n",$file2); 
print diff2table($a1,$a2); 

(代码只是接受输入的数组和输出html表,但diff2table可以定制)

+0

doh!看到你已经找到了simplediff。但也许我已经显示的用法有所帮助。我发现它可以在现实世界中使用。它适用于具有10万行的文档。 – barryhunter

+0

我发现它不太适合我的需求。它有时猜测,我无法猜测。 – Webnet

+0

猜测?这是什么意思? – barryhunter