xdiff_string_patch
(PECL xdiff >= 0.2.0)
xdiff_string_patch — Patche une chaîne avec un diff unifié
Description
$str
, string $patch
[, int $flags
[, string &$error
]] )
Patche la chaîne str avec un patch
unifié et retourne le résultat. patch doit être un
patch unifié créé par les fonctions
xdiff_file_diff() et xdiff_string_diff().
Un paramètre optionnel flags spécifie le mode de
l'opération. Toutes les parties rejetées seront stockées dans la
variable error si elle est fournie.
Liste de paramètres
-
str -
La chaîne originale.
-
patch -
Le patch unifié. Il doit avoir été créé en utilisant les fonctions xdiff_string_diff(), xdiff_file_diff() ou tout autre outil compatible.
-
flags -
flagspeut être soitXDIFF_PATCH_NORMAL(mode par défaut, patch normal), soitXDIFF_PATCH_REVERSE(patch inversé).Depuis la version 1.5.0, vous pouvez également utiliser l'opérateur binaire OR pour activer le drapeau
XDIFF_PATCH_IGNORESPACE. -
error -
Si
errorest fourni, les parties rejetées y seront stockées.
Valeurs de retour
Retourne la chaîne patchée, ou FALSE si une erreur survient.
Exemples
Exemple #1 Exemple avec xdiff_string_patch()
Le code suivant applique les changements à des articles.
<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* disons que quelqu'un a passé un patch via un formulaire html */
$errors = '';
$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
echo "Nouvel article :\n";
echo $new_article;
}
if (strlen($errors)) {
echo "Rejets : \n";
echo $errors;
}
?>
