Is it possible to highlight the modifications in one text paragraph from the other?
For example, there are 3 text fields in a database. Non-admin users can edit the text
This is an old thread but thought I'd catalog my findings.
If you want to use raw php, this is by far the simplest, fastest, and most effective solution I've found: http://paulbutler.org/archives/a-simple-diff-algorithm-in-php/
From what I can tell, the author of the above code is using an algorithm outlined in this article: http://www.codeproject.com/Articles/6943/A-Generic-Reusable-Diff-Algorithm-in-C-II
Basic description of what's happening (taken from the article):
Works like a charm!
Options:
Stackoverflow Archive:
Not sure, why these long solutions are there. here I had found an easy one for me.
string1 = "The quick brown fox jumps over the lazy dog.";
$string2 = "The quick brown albino fox jumps the groovy dog.";
$string1 = explode(" ", $string1);
$string2 = explode(" ", $string2);
$diff = array_intersect($string2, $string1);
$tmp = array();
foreach ($string2 as $k => $w) {
if ($diff[$k]==$w) {
$tmp[$k] = $w;
}
else {
$tmp[$k] = "<b>$w</b>";
}
}
$diff = array_diff($string1, $tmp);
foreach ($diff as $k => $w) {
$tmp[$k] .= " [<strike>$w</strike>]";
}
echo join (' ', $tmp);
ref. https://forums.phpfreaks.com/topic/6525-how-do-i-highlight-differences-between-strings/
If you are familiar with GNU/Linux tools, you might be familiar with the `diff' tool.
And someone has written a fully functional diff for comparing files/strings in php.
You can find it here: php diff example.