2008-09-21 9 views

Antwort

7

Welche Art von diffs? Datei Diffs? Es gibt array_diff(), die auf Arrays wirkt. Dann gibt es auch , die "ermöglicht Ihnen, Patch-Dateien zu erstellen und anzuwenden, die Unterschiede zwischen verschiedenen Revisionen von Dateien enthalten.". Letzteres wirkt sich auf Dateien oder Zeichenketten aus.

Edit: Ich sollte hinzufügen, Xdiff scheint noch nicht in einer Veröffentlichung zu sein. Sie müssen aus der Quelle bauen, um sie zu benutzen.

+0

Danke für die Antwort - ich habe die Frage ein bisschen jetzt geklärt. – nickf

+0

"xdiff scheint noch nicht veröffentlicht zu sein" - bugger. – nickf

6

es hängt genau, was Sie meinen, und was wollen Sie tun, aber es gibt

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

2

Es hängt wirklich davon ab, was Sie wollen. Wenn Sie nur die Diff-Dateien für zwei Textgruppen erhalten möchten, ist es möglicherweise einfacher, einen externen diff-Befehl zu verwenden (was natürlich völlig von der Umgebung abhängt, für die Sie arbeiten).

$diff = `diff $file1 $file2`; 

Von dort aus, wenn Sie die diff Informationen überhaupt verwenden möchten, müssten Sie analysieren und diese Lösung kann nicht sein, was Sie wollen. In diesem Fall würde ich vorschlagen, die oben erwähnte PEAR-Bibliothek zu betrachten oder nach einer ähnlichen Text-Parsing-Bibliothek zu suchen.

+0

und natürlich bedeutet dies, dass Sie sehr vorsichtig sein müssen, Ihre Benutzereingaben zu überprüfen, um sicherzustellen, dass der Befehl an den richtigen Dateien arbeitet und nicht dazu gebracht werden kann, die falschen Dateien nachzuschlagen. – DGM

+0

Verwenden Sie 'escapeshellarg', wenn Sie die Verkettung von Strings verwenden, um einen Shell-Befehl zu erstellen. – troelskn

2

MediaWiki Diff Engine ist Open Source (genau wie der Rest). Wenn Sie die Art, wie Wikipedia Text-Diffs behandelt, mögen, könnte es eine Lösung für Sie sein.

2

Ich mag dieses JavaScript-basierte für Web-Projekte.

jsdifflib

3

Der Ausgang des this ist in GNU diff-Format. Es könnte sein, wonach Sie suchen.

7

Es gibt eine nette und winzige Simplediff project on Github, die Text und HTML-Diffs erstellt.

+0

Ich habe das Programm nicht ausgeführt, aber es scheint, dass es für Array-Unterschiede ist? – nickf

+0

@nickf Ja, aber Sie können den Text in Arrays leicht explodieren. – takeshin

+1

Das ist das Tolle. Vertrau mir. Ich habe es benutzt. – Xeoncross