2013-03-25 70 views
4

我正在用PHP編寫一個工具,它比較HTML文件並顯示差異。現在我正在尋找一種有效的方法來計算兩個HTML文件之間的百分比差異。這些文件可以是任意長的(我擁有的文件可以長達300000個字符)。計算兩個HTML文件的百分比差異

經過一番研究,我偶然發現了Oven(n * m)算法的Levensthein距離並且需要空間O(n * m):PHP版本最多隻能支持255個字符,而我自己實現的O (n)空間太慢了。 之後,我嘗試了php函數similar_text,但是對於非常大的HTML文件,該算法也太慢。

所以現在我正在尋找另一種更高效的算法來比較HTML文件。近似算法也很好。任何人都可以給我一些關於如何做到這一點的建議嗎?

+0

您是否需要比較文件或其內容?如果你strip_tags文件會更短。 – Voitcus 2013-03-25 14:37:24

+0

我想這取決於你正在檢查的差異?例如空白計數等? – diagonalbatman 2013-03-25 14:37:32

+1

爲什麼不能運行diff並使用其輸出? – 2013-04-02 03:48:23

回答

1

,可以設定擴展x差值:

http://www.php.net/manual/en/function.xdiff-file-diff.php

然後獲取這兩個文件的差異,並基於該差異,你可以很容易地來與百分比。

實施例:

  • 第一文件進行:400個字
  • 第二個文件B:400個字

DIFF結果:200個字從一個diff到B

這將使你有50%的相似性。