xdiff_string_patch_binary
xdiff_string_rabdiff
Fonctions xdiff
PHP Manual

# xdiff_string_patch

(PECL xdiff >= 0.2.0)

xdiff_string_patch — Patche une chaîne avec un diff unifié

### Description

string xdiff_string_patch ( string `$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 soit `XDIFF_PATCH_NORMAL` (mode par défaut, patch normal), soit `XDIFF_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()

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;
}
?>`

### Voir aussi

- xdiff_string_diff() - Créé un diff unifié entre deux chaînes

xdiff_string_patch_binary
xdiff_string_rabdiff
Fonctions xdiff
PHP Manual