Vergleich von zwei Strings / Änderungen hervorheben
Markus
- php
Hallo zusammen,
ich habe zwei Strings, die würde ich gerne miteinander vergleichen. Nach dem Vergleich sollen die Unterschiede im Text rot hervorgehoben sein. Ähnlich wie man es von Word kennt, wenn der Änderungsmodus an ist. So eine Art windiff.exe unter php.
Hat da jemand einen Ansatz oder besser eine fertige Funktion für mich?
VIELEN DANK,
Markus
Lieber Markus,
in der PHP-Doku gibt es eine Funktion namens levenshtein(). Diese Funktion ist darauf spezialisiert, Strings zu vergleichen!
Da die Erläuterungen etwas sehr knapp gehalten sind, empfehle ich ein genaueres Studium der User-Kommentare, da dort die Funktion ausprobiert wurde. Man findet dort oft sehr nützliche Hinweise!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hi,
in der PHP-Doku gibt es eine Funktion namens levenshtein(). Diese Funktion ist darauf spezialisiert, Strings zu vergleichen!
Ja, kann man hier benutzen. Waere aber eine verdammt aufwendige und vor allem sauteure Methode.[1]
Wenn auch sehr kreativ! ;-)
Gewollt ist hier aber wohl eher ein visuelles 'diff'.
Ich weiss nicht, ob das schon jemand in PHP zusammengefummelt hat, ansonsten wuerde ich vorschlagen, einfach 'diff' (ich nehme mal an, das Du die Windowsversion benoetigst?) zu nehmen und die Ausgabe zu parsen.
$ cat eins
Zeile eins
Zeile Zwei
Zeile Drei
$ cat zwei
Zeile eins
Zeile Zwei ist mehr drin
Zeile Drei
$ diff -u eins zwei
--- eins Thu Oct 27 01:50:41 2005
+++ zwei Thu Oct 27 01:50:34 2005
@@ -1,3 +1,3 @@
Zeile eins
-Zeile Zwei
+Zeile Zwei ist mehr drin
Zeile Drei
Einfach mal ein wenig mit herumspielen, das Format sollte mit PHP gut parsebar sein, vielleicht gibt's das ja sogar schon fertig.
Da die Erläuterungen etwas sehr knapp gehalten sind, empfehle ich ein genaueres Studium der User-Kommentare, da dort die Funktion ausprobiert wurde. Man findet dort oft sehr nützliche Hinweise!
Ja, allerdings fand ich die Qualitaet dort mitunter schon _sehr_ ... aeh ... gemischt. Da steht teilweise hahnebuechener Code direkt neben sorgfaeltig durchdachtem und sauber geschriebenem Code. Da kann ein Anfaenger durchaus mal in eine Falle tappen, denn er kann das ja nicht unterscheiden.
Das soll aber natuerlich keinen davon abhalten, sich den Kommentaren zu widmen, ganz im Gegenteil! Nur eben mit einem gesundem Mass an Skepsis.
so short
Christoph Zurnieden
[1] ist die PHP Implementation des Damerau-Levenshtein-Algorithmus' eigentlich repariert worden oder benoetigt die immer noch O(n^2) Speicher?