2010-07-22 11 views
4

En bref, je cherche quelque chose comme google-diff-match-patch en PHP.Chaîne de caractères diff en PHP

J'ai eu un coup d'œil à quelques questions similaires à SO, et aussi à l'algorithme fourni here, mais tous échouer:

diff("draßen", "da draußen") 

devrait pas donner

<del>draßen</del> <ins>da draußen</ins> 

(ce qui est un peu stupide pour mon but, parce que je veux comparer les noms de fichiers), mais (try here)

<ins>da </ins>dra<ins>u</ins>ßen 

Existe-t-il un extrait de code dans PHP? Malheureusement, je ne peux pas utiliser (c'est-à-dire installer) des paquets externes.

+0

Pas sûr que ce soit ce que vous voulez/besoin, mais donnez une apparence à cette fonction PHP: http://php.net/manual/fr/function.similar-text.php. Il y a aussi l'algorithme de Levenshtein, à "Voir aussi". – Francisc

+0

Vous pouvez définir un pourcentage de seuil lorsque la vérification 'in-word' diffère de 'similar_text()'. Je n'ai pas eu le temps de travailler sur un exemple a.t.m. bien que. – Wrikken

+0

Dans la [API Documentation] (http://code.google.com/p/google-diff-match-patch/wiki/API) sur la page Google Code que vous liez, il est fait mention d'une implémentation partielle de PHP - bien que cela ne fait pas encore partie du référentiel. – MrWhite

Répondre

2

Le package PEAR Text_Diff fournit des différences en ligne.

+0

Je sais. Mais je ne peux pas installer de paquets de poires afaik. – fuenfundachtzig

+1

Vous pouvez télécharger le package Text_Diff en tant que tgz. Vous pouvez donc extraire les fonctions/algorithmes dont vous avez réellement besoin. –