xdiff_file_patch
(PECL xdiff >= 0.2.0)
xdiff_file_patch — Parchea un archivo con un diff unificado
Descripción
$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.
Parámetros
-
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) oXDIFF_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.
Valores devueltos
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.
Ejemplos
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;
}
?>