(PECL xdiff >= 0.2.0)
xdiff_file_patch — Parchea un archivo con un diff unificado
$file
, string $patch
, string $dest
[, int $flags
= DIFF_PATCH_NORMAL
] )
Parchea un file
con un patch
y almacena el resultado en un archivo.
patch
tiene que ser un diff unificado creado por la función
xdiff_file_diff()/ xdiff_string_diff().
Un parámetro opcional flags
especifica el modo de operación.
file
El archivo original.
patch
El archivo de revisión unificado. Este tiene que ser creado con las funciones xdiff_string_diff(), xdiff_file_diff() o herramientas compatibles.
dest
Ruta de el archivo resultante.
flags
Puede ser XDIFF_PATCH_NORMAL
(modo por defecto,
parche normal) o XDIFF_PATCH_REVERSE
(parche
invertido).
A partir de la versión 1.5.0, también puede utilizar binario OR para habilitar el indicador
XDIFF_PATCH_IGNORESPACE
.
Devuelve FALSE
si ocurrió un error interno, una cadena con fragmento erróneo
si el parche no pudo ser aplicado o TRUE
si el parche fue aplicado con éxito.
Ejemplo #1 Ejemplo de xdiff_file_patch()
El siguiente código aplica un diff unificado a un archivo.
<?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 "Rejects:\n";
echo $errors;
}
?>
Ejemplo #2 Ejemplo de parche invertido
El código siguiente invierte un parche.
<?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 "Fragmentos erróneos:\n";
echo $errors;
}
?>