xdiff_string_patch
(PECL xdiff >= 0.2.0)
xdiff_string_patch — Parchear una cadena con un diff unificado
Descripción
$str
, string $patch
[, int $flags
[, string &$error
]] )
Parchea una cadena str con un parche unificado en parámetro patch
y devuelve el resultado. 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. Cualquier
fragmento erróneo del parche será almacenado en el interior de la variable error si
si esta es proporcionada.
Parámetros
-
str -
La cadena original.
-
patch -
La cadena parche unificada. Esta tiene que ser creada utilizando las funciones xdiff_string_diff(), xdiff_file_diff() o herramientas compatibles.
-
flags -
flagsuede serXDIFF_PATCH_NORMAL(modo por defecto, parche normal) oXDIFF_PATCH_REVERSE(parche invertido).A partir de la versión 1.5.0, también se puede utilizar binario OR para habilitar el indicador
XDIFF_PATCH_IGNORESPACE. -
error -
Si se proporciona entonces los fragmentos erróneos se almacenan dentro de esta variable.
Valores devueltos
Devuelve la cadena parcheada, o FALSE en caso de error.
Ejemplos
Ejemplo #1 Ejemplo de xdiff_string_patch()
El siguiente código aplica cambios en algún artículo.
<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* Supongamos que alguien pega un parche para un formulario html */
$errors = '';
$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
echo "Nuevo artículo:\n";
echo $new_article;
}
if (strlen($errors)) {
echo "Fragmentos erróneos: \n";
echo $errors;
}
?>