2011-11-02 109 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