xdiff_string_patch

(PECL xdiff >= 0.2.0)

xdiff_string_patchPatche une chaîne avec un diff unifié

Description

xdiff_string_patch(
    string $str,
    string $patch,
    int $flags = ?,
    string &$error = ?
): string

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top