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.
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;
}
?>
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-xdiff-string-patch.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.