Encontre e formate a diferença entre duas strings em PHP

Esta função pega duas strings e as formata em um formato “diff” que é familiar para a maioria dos desenvolvedores. Esta função pode ser usada para comparar linhas de arquivos ou propriedades de objetos. Mas a raiz é esta função:

function get_decorated_diff($old, $new){
$from_start
= strspn($old ^ $new, "\0");
$from_end
= strspn(strrev($old) ^ strrev($new), "\0");

$old_end
= strlen($old) - $from_end;
$new_end
= strlen($new) - $from_end;

$start
= substr($new, 0, $from_start);
$end
= substr($new, $new_end);
$new_diff
= substr($new, $from_start, $new_end - $from_start);
$old_diff
= substr($old, $from_start, $old_end - $from_start);

$new
= "$start<ins style='background-color:#ccffcc'>$new_diff</ins>$end";
$old
= "$start<del style='background-color:#ffcccc'>$old_diff</del>$end";
return array("old"=>$old, "new"=>$new);
}

E o uso é desta forma:

$string_old = "The quick brown fox jumped over the lazy dog";
$string_new
= "The quick white rabbit jumped over the lazy dog";
$diff
= get_decorated_diff($string_old, $string_new);
echo
"<table>
<tr>

<td>"
.$diff['old']."</td>
<td>"
.$diff['new']."</td>
</tr>

</table>"
;

O que resultará nesta saída:
Cenário