Forum: PC-Programmierung PHP - Veränderung zwischen zwei Strings


von Nerd (Gast)


Lesenswert?

Hi Leute,
ich bin auf der Suche nach einer Funktion in PHP mit welcher es möglich 
ist, den tatsächlichen unterschied zwischen zwei strings herraus zu 
finden und damit den zweiten aus dem ersten String rekonstruieren zu 
können.
Also sowas wie:

$str1 = "Hallo, mein Name ist Nerd";
$str2 = "Mein Name ist 'Nerd'!";

$diff = Unterschied($str1, $str2);
#$diff könnte somas sein wie "["-1:8","+M:8",["+':21"],"+'!:25"]"

------------------------------------------------------------------------ 
------------------------------------------------

$str3 = Reconstruct($str1, $diff);

#Jetzt sollte "$str2 = $str3" sein


Lässt sich das umsetzen oder gibt es dafür vill sogar schon eine 
Funktion?

: Verschoben durch Moderator
von T.roll (Gast)


Lesenswert?

Nerd schrieb:
> damit den zweiten aus dem ersten String rekonstruieren zu
> können.

Kannst du das mal genauer erklären?

von Roland P. (pram)


Lesenswert?

Du suchst wahrscheinlich den "diff match patch"  Algorithmus von Neil 
Fraser/Google

Gibt auch einige PHP Ports dafür

VG Roland

von Philipp K. (philipp_k59)


Lesenswert?

Das Thema hat mich jetzt auch mal interesiert..

Keine Ahnung ob das in die gewünschte Richtung geht..

Pear Package Horde Text Diff

https://www.horde.org/libraries/Horde_Text_Diff

von Cyblord -. (Gast)


Lesenswert?

Das Problem ist bekannt unter Editierdistanz:

https://de.wikipedia.org/wiki/Levenshtein-Distanz

Da kann man auch den Weg zurück konstruieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.