(PECL xdiff >= 0.2.0)
xdiff_file_patch — Patche un fichier avec un diff unifié
$file
, string $patch
, string $dest
[, int $flags
= DIFF_PATCH_NORMAL
] )
Patche le fichier file
avec le patch fourni par
le paramètre patch
et enregistre le résultat dans un
fichier. patch
doit être un diff unifié créé par la
fonction xdiff_file_diff()/ xdiff_string_diff().
Un paramètre optionnel flags
spécifie le mode de
l'opération.
file
Le fichier original.
patch
Le fichier contenant le patch unifié. Il doit avoir été créé en utilisant les fonctions xdiff_string_diff(), xdiff_file_diff() ou par des outils compatibles.
dest
Le chemin vers le fichier résultat.
flags
Peut être soit XDIFF_PATCH_NORMAL
(mode par
défaut, patch normal) ou 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
.
Retourne FALSE
si une erreur interne s'est produite, une
chaîne avec les parties rejetées du patch
si c'est le
cas ou TRUE
si le patch
a été appliqué avec succès.
Exemple #1 Exemple avec xdiff_file_patch()
Le code suivant applique un diff à un fichier.
<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';
$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
echo "Rejets :\n";
echo $errors;
}
?>
Exemple #2 Exemple de retour à l'état initial après l'application d'un patch
Le code suivant annule un patch.
<?php
$new_version = 'my_script-1.1.php';
$patch = 'my_script.patch';
$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
echo "Rejets :\n";
echo $errors;
}
?>