2009-07-14 9 views
2

Est-il possible de mettre en évidence les modifications dans un paragraphe de texte de l'autre?Comment mettre en évidence les changements/différences dans un paragraphe de texte de l'autre?

Par exemple, il y a 3 champs de texte dans une base de données. Les utilisateurs non administrateurs peuvent modifier le texte et le soumettre pour approbation. Lorsque l'administrateur se connecte, il peut ouvrir la page des approbations et afficher le texte original et le texte soumis par l'utilisateur avec des modifications. Habituellement, ces modifications sont très petites dans la nature, comme la correction orthographique ou simplement une suppression ou l'ajout d'une phrase.

Peut-il être présenté de telle manière que les modifications (du texte original) sont surlignées afin que les utilisateurs d'administration n'aient pas à vérifier chaque champ et chaque ligne avant de l'approuver?

Toute aide serait appréciée. Merci.

Mis à jour: Un peu similaire au changement de code de TortoiseSVN.

Répondre

3

Si vous connaissez des outils GNU/Linux, vous connaissez peut-être l'outil `diff ».

Et quelqu'un a écrit un diff entièrement fonctionnel pour comparer des fichiers/chaînes en php.

Vous pouvez le trouver ici: php diff example.

0

Ceci est un ancien sujet, mais je pensais cataloguer mes résultats.

Si vous souhaitez utiliser php brut, c'est de loin la plus simple, la plus rapide et la solution la plus efficace que j'ai trouvé: http://paulbutler.org/archives/a-simple-diff-algorithm-in-php/

D'après ce que je peux dire, l'auteur du code ci-dessus utilise un algorithme décrit dans cet article: http://www.codeproject.com/Articles/6943/A-Generic-Reusable-Diff-Algorithm-in-C-II

Description de base de ce qui se passe (tiré de l'article):

  • Trouver la séquence de correspondance le plus long cours (LMS) d'articles.
  • Stockez ce système LMS dans une pile de résultats.
  • Traite toutes les données laissées au-dessus du LMS en utilisant la récursivité.
  • Traite toutes les données laissées sous le système LMS en utilisant la récursivité.

Fonctionne comme un charme!

Questions connexes