fluminis  | Domage !
   Text_Diff a en plus la facheuse tendance de ne pas respecter les standards php5 et leve des erreurs de codage. Donc pas moyen de l'utiliser tel quel si on a mis l'option E_ALL.
   Il faut modifier les "&new UneClasse" par "new UneClasse" dans tous les fichiers de la librairie Text_Diff.
   Pour le "patch", j'ai du recoder une fonction maison a partir du format rendu par Text_Diff :
  
  Code :
 - //appel de diff pour obtenir un $patch
 - function diff($original, $final) {
 - 	$diff = new Text_Diff(split("\n",str_replace( "\r\n", "\n",$original)), split("\n",str_replace( "\r\n", "\n",$final)));
 - 	$renderer = new Text_Diff_Renderer();
 - 	return $renderer->render($diff);
 - }
 
  |  
 
  
  Code :
 - //application d'un patch sur un text
 - function patch($original, $patch) {
 - 	$new = array();
 - 	$current = 0;
 - 	$original_array = explode( "\n", str_replace( "\r\n", "\n", $original ) );
 - 	$patch_array    = explode( "\n", $patch );
 - 	$countOriginal = count($original_array);
 - 	foreach($patch_array as $line ) {
 -   if (!empty($line)) {
 -   	if ($line[0] == '>') { //add
 -     $new[] =  substr( $line, 2 );
 -   	} else if (preg_match("/^([0-9]+)(?:,([0-9]+))?(a|d|c)/", $line, $matches)) {
 -     $l_start = $matches[1] - 1;
 -     $l_end   = $matches[2] != "" ? $matches[2] - 1 : $l_start;
 -     $action  = $matches[3];
 -     for(; $current < $l_start; $current++) {
 -     	$new[] = $original_array[$current];
 -     }
 -     if ($action == "d" ) {
 -     	$current = $l_end + 1;
 -     } else if ($action == "a" ) {
 -     	$new[] = $original_array[$current++];
 -     } else if ($action == "c" ) {
 -     	$current += $l_end - $l_start + 1;
 -     }
 -   	}
 -   }
 - 	}
 - 	for(; $current < $countOriginal; $current++) {
 -   $new[] = $original_array[$current];
 - 	}
 - 	return implode( "\n", $new );
 - }
 
  |  
 
   Mais bon reinventer la roue n'est pas forcement une bonne solution. Si il existait une librairie robuste et testée par un plus grand nombre, ça m'aurait pas deplus.
     ---------------
			 http://poemes.iceteapeche.com - http://www.simuland.net
    |