Comparer deux versions d'un fichier

Petit nouveau ! | 9 Messages

09 avr. 2009, 10:36

Bonjour,

Existe-t-il une fonction php qui permet de retourner les différences entre deux versions d'un fichier (non binaire) ?

Actuellement je fais ça à l'arrache comme ceci :
<?php

$diff = array();

exec('diff old-file.html new-file.html --rcs', $diff);

foreach ($diff as $key => $value) {
	$value = htmlentities($value);
	echo '[' . $key . '] => ' . $value . '<br/>';
}

?>
Mais c'est une méthode très lourde car je suis obligé de parser le résultat pour le mettre en forme.

Un grand merci d'avance ;)
Modifié en dernier par Smartie'S le 11 avr. 2009, 13:02, modifié 1 fois.
Image

ViPHP
ViPHP | 5924 Messages

09 avr. 2009, 13:36


Petit nouveau ! | 9 Messages

11 avr. 2009, 13:02

Merci pour ta réponse ;-)

N'existerait il pas cependant une fonction semblable interne à PHP ne nécessitant pas l'installation de librairie externe ?

Pour avoir parcouru les pages du lien que tu fournis, il semblerait que cette méthode (xdiff) permette exclusivement la génération d'un fichier contenant les différences or, ce que je cherche à faire c'est obtenir ces différences dans une variables.

Merci d'avance :)
Image

ViPHP
ViPHP | 5924 Messages

11 avr. 2009, 13:50

Le mieux que tu puisses trouver c'est je pense http://www.php.net/manual/fr/function.x ... g-diff.php

Après dans php lui-même, je ne pense pas que ce soit possible simplement. Ou alors tu dois réimplémenter les algorithmes…

ViPHP
ViPHP | 4674 Messages

12 avr. 2009, 18:34

Hey :-),

À ma connaissance, rien n'existe dans PHP nativement pour répondre à ton besoin. Toutefois, installer XDIFF n'a rien de compliqué car c'est une extension PECL. Si tu es sous Unix :

Code : Tout sélectionner

$ pear -v install xdiff
et c'est terminé ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Petit nouveau ! | 9 Messages

23 avr. 2009, 10:27

installer XDIFF n'a rien de compliqué
C'est justement ce qui me rebutait :)
Merci pour ta réponse, je vais tenter l'expérience !
Image