(PECL xdiff >= 0.2.0)
xdiff_string_patch — Parchear una cadena con un diff unificado
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.
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
flags
uede 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 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.
Devuelve la cadena parcheada, o false
en caso de error.
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'];
$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;
}
?>