Frage

    

Diese Frage bereits eine Antwort hier:

         

Gibt es Bibliotheken (3rd-Party oder eingebaut) in PHP Text diffs zu berechnen?

War es hilfreich?

Lösung

Welche Art von diffs? Datei-diffs? Es gibt array_diff () , die auf Arrays wirkt. Dann gibt es auch Xdiff , die „ermöglicht es Ihnen, Patch-Dateien zu erstellen und anwenden enthält Unterschiede zwischen den verschiedenen Versionen von Dateien. ". Letztere wirkt auf Dateien oder Strings.

Edit: Ich sollte hinzufügen Xdiff noch nicht in einem Release erwiesen erscheint. Sie haben von der Quelle zu bauen, es zu benutzen.

Andere Tipps

Es hängt genau das, was Sie bedeuten und was Sie wollen tun, aber es gibt

PEAR Text_Diff - Motor für die Durchführung und Rendering-Text diffs

Es gibt eine schöne und kleine Simplediff Projekt auf Github die diffs Text und HTML erstellt.

Die Ausgabe von dieser ist in GNU diff-Format. Es könnte sein, was Sie suchen.

Es hängt wirklich davon ab, welche Ergebnisse Sie wollen. Wenn alles, was Sie tun möchten, ist die diff-Dateien für zwei Sätze von Text zu erhalten, können Sie es einfacher zu finden, um nur einen externen diff Befehl zu verwenden (was natürlich völlig auf der Umwelt hängt für Sie entwickeln).

$diff = `diff $file1 $file2`;

Von dort aus, wenn Sie die diff Informationen überhaupt verwenden möchten, müssen Sie würde analysieren und diese Lösung kann nicht sein, was Sie wollen. In diesem Fall würde ich auf der PEAR-Bibliothek oben genannten empfehlen suchen oder für eine ähnliche Text-Parsing-Bibliothek zu suchen.

MediaWiki diff-Engine ist Open Source (genau wie der Rest davon). Wenn Sie die Art und Weise Wikipedia behandelt Text diffs mag, kann es eine Lösung für Sie sein.

Ich mag diese JavaScript-basierte eine für Web-Projekten.

jsdifflib

bauen nicht, aber ich mag es, weil es so ein schönes Interface hat alles heraus auf der Website zu testen, und weil es etwas schneller zu sein scheint als Text_Diff bei hohen Granularität Ebenen.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top