Archives: 5 octobre 2006

comparer les différences entre fichiers

jeudi 5 octobre 2006

En créant un projet de subversion en php, je me suis rendu compte qu’il était assez dure d’afficher clairement les différences entre 2 fichiers sous php…

Quelques sources de class php sont fournies sur la toile seulement elle sont bien souvent trop gourmande et possèdent trop de bug pour pouvoir les utilisées correctement.

C’est pourquoi la commande diff sous linux existe et vous permet de faire cela dans un shell via la functioon php shell_exec ou encore grace aux guillemets obliques.

Vous n’aurez alors qu’a exécuté la commande suivante:

 

qui vous retournera quelque chose comme :

--- fichier1   2006-10-05 01:19:52.000000000 +0200
+++ fichier2   2006-10-05 01:14:20.000000000 +0200
@@ -1,7 +1,12 @@
 ablabla
+ablablaablablaabla
 ablablaablabla
-www
-ablablaablablaablabla
-abb
+ablablaablablaabla
+ablablaablablaabla
+ablablaablablaabla
+ablablaablablaabla
+ablabl
+ablablaablablaabla
+ablablaablablaabla
 ablabla
 test
\ Pas de fin de ligne à la fin du fichier.

Il ne restera plus qu’a parser le résultat.
Plusieurs options pour diff son disponibles: man diff
Voyez aussi diff3 qui permet de comparer 3 fichiers en même temps, et sdiff pour une représentation ligne-à-ligne (side-by-side).