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
-
flags
peut ê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
error
est 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()
<?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; } ?>