(PECL xdiff >= 0.2.0)
xdiff_string_diff — Créé un diff unifié entre deux chaînes
$old_data
, string $new_data
[, int $context
= 3
[, bool $minimal
= false
]] )
Crée un diff unifié contenant les différences entre la chaîne
old_data
et la chaîne new_data
et retourne le diff ainsi créé. Le diff résultant est humainement lisible.
Le paramètre optionnel context
spécifie le nombre de
lignes de contexte à ajouter autour de chaque modification. Le fait de définir
le paramètre minimal
à TRUE
fera que le diff sera le
plus petit possible (peut prendre du temps).
old_data
Première chaîne de données. Ce sont les anciennes données.
new_data
Seconde chaîne de données. Ce sont les nouvelles données.
context
Indique le nombre de lignes de contexte que vous voulez inclure dans le diff résultant.
minimal
Configurez minimal
à TRUE
si vous voulez
minimaliser la taille du diff (peut prendre beaucoup de temps).
Retourne une chaîne représentant le diff résultant, ou FALSE
si une erreur
interne survient.
Exemple #1 Exemple avec xdiff_string_diff()
Le code suivant effectue un diff de deux articles.
<?php
$old_article = file_get_contents('./old_article.txt');
$new_article = $_REQUEST['article']; /* disons que quelqu'un a posté un nouvel article via un formulaire html */
$diff = xdiff_string_diff($old_article, $new_article, 1);
if (is_string($diff)) {
echo "Différences entre les deux articles :\n";
echo $diff;
}
?>
Note:
Cette fonction ne fonctionne pas correctement avec des chaînes binaires. Pour effectuer un diff de chaînes binaires, utilisez la fonction xdiff_string_bdiff()/ xdiff_string_rabdiff().