Вычислить diff в PHP

Существуют ли в PHP библиотеки (сторонние или встроенные) для расчета различий текста?

Related of "Вычислить diff в PHP"

Какие отличия? Файл отличается? Существует массив_дифф (), который действует на массивы. Тогда есть также xdiff , который «позволяет создавать и применять файлы исправлений, содержащие различия между различными версиями файлов». Последний действует на файлы или строки.

Изменить: я должен добавить xdiff, похоже, пока не вышел. Вы должны строить из источника, чтобы использовать его.

В Github есть хороший и крошечный проект Simplediff, который создает текстовые и HTML-различия.

это зависит именно от того, что вы имеете в виду и что вы хотите сделать, но есть

PEAR Text_Diff – движок для выполнения и отображения текста

Выход этого в формате GNU diff. Возможно, это то, что вы ищете.

Это действительно зависит от того, какой результат вы хотите. Если все, что вы хотите сделать, это получить файлы diff для двух наборов текста, вам может быть проще просто использовать внешнюю команду diff (которая, конечно же, полностью зависит от среды, для которой вы разрабатываете).

 $diff = `diff $file1 $file2`; 

Оттуда, если вы хотите использовать информацию о различиях вообще, вам нужно будет анализировать, и это решение может и не быть тем, что вам нужно. В этом случае я бы предложил посмотреть библиотеку PEAR, упомянутую выше, или найти подобную библиотеку синтаксического анализа текста.

Механизм разворота MediaWiki является открытым исходным кодом (как и остальная часть). Если вам нравится, как Wikipedia обрабатывает текстовые различия, это может быть решением для вас.

Мне очень нравится этот JavaScript, основанный на веб-проектах.

jsdifflib

Не встраивайте, но мне это нравится, потому что у него есть такой приятный интерфейс, чтобы проверять все на веб-сайте, и потому что он выглядит несколько быстрее, чем Text_Diff на высоких уровнях детализации.

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