2016-12-01 12 views
0

Was wäre der beste Weg, Änderungen/Ergänzungen eines Textfelds zu verfolgen? Ich habe ein "Kommentar" -Feld für einen bestimmten Datensatz in der Datenbank. Was ich tun möchte, ist, wenn der Benutzer den Datensatz auf der Website anzeigt, werden ihre ursprünglichen Kommentare im Klartext angezeigt. Wenn der Supervisor dann Änderungen/Ergänzungen vornimmt, werden seine Kommentare in Fettschrift angezeigt. Diese Kommentare können überall im Text vorkommen. Zum Beispiel:Datenbank - Änderungen im Textfeld verfolgen

Original:

Das sind meine Kommentare. Sie sind großartig!

Nach Supervisor kommentiert:

Das sind meine nicht so groß Kommentare. Sie sind großartig! Ich stimme nicht zu.

Verwenden Sie MySQL und PHP, wenn das wichtig ist.

+1

Sie meinen die nur Text hinzugefügt von Supervisor Kommentare in fett erscheinen wird? – Perumal

+0

@mang Um dies zu entwickeln, sollten Sie mit der Versionskontrolle beginnen. Versionskontrollen (Revisionskontrolle) dienen genau diesem Zweck, um Änderungen, Additionen oder Subtraktionen nachzuverfolgen. –

+0

@ Perumal93 - Korrekt – mang

Antwort

1

Sie könnten den folgenden Code ausprobieren:

function highlight_modified_string($actual_string, $modified_string) { 
    $str_array = explode(' ', $actual_string); 
    $str_edited_array = explode(' ', $modified_string); 
    $str_added = array_diff($str_edited_array, $str_array); 

    foreach($str_edited_array as &$str_edited_value) { 
     foreach($str_added as $str_added_value) { 
      if($str_added_value == $str_edited_value) { 
       $str_edited_value = '<span style="font-weight: bold">' . $str_edited_value . '</span>'; 
      } 
     } 
     unset($str_edited_value); 
    } 

    return implode(' ', $str_edited_array); 
} 

$str = "These are my comments. They are awesome!"; 
$str_edited = "These are my not so great comments. They are awesome! I disagree."; 
$str_modified = highlight_modified_string($str, $str_edited); 

echo "<p>{$str}</p>"; 
echo "<p>{$str_modified}</p>"; 

Ich bin nicht sicher, ob das, was für ist Sie suchen. Aber ich habe mein Bestes getan, um Ihnen die Lösung zu bieten, die ich könnte.

Auch dieser Code funktioniert mit dem Testfall, den Sie in der Frage angegeben haben.

Aber ich bin sicher, dass dieser Code nicht für alle Testfälle flexibel ist.

Wie auch immer, versuchen Sie Ihre eigenen verschiedenen Testfälle zu überprüfen, ob die Funktion besser funktioniert.

Wenn Sie sich für eine flexible Lösung suchen, können Sie auf den folgenden Beitrag beziehen und es hat Antwort markiert:

Highlight the difference between two strings in PHP

+0

Danke, das sollte tun, was ich brauche. Ich füge einfach eine zusätzliche Spalte namens "Supervisor Kommentare" hinzu und vergleiche die beiden Strings damit. Vielen Dank! – mang

+0

Hast du es sehr gut getestet? Weil es nur mit den hinzugefügten Wörtern funktioniert, die in der Zeichenfolge nicht vorhanden sind. – Perumal

Verwandte Themen