(PECL xdiff >= 0.2.0)
xdiff_string_patch — Patches a string with an unified diff
Corrige uma string str
com um patch unificado no parâmetro patch
e retorna o resultado. patch
deve ser uma diferença unificada criado pela
função xdiff_file_diff()/xdiff_string_diff().
Um parâmetro opcional flags
especifica o modo de operação. Quaisquer
partes rejeitadas do patch serão armazenadas dentro da variável error
se
forem fornecidas.
str
A string original.
patch
A string de patch unificada. Ela deve ser criada usando as funções xdiff_string_diff(), xdiff_file_diff() ou ferramentas compatíveis.
flags
flags
podem ser
XDIFF_PATCH_NORMAL
(modo padrão, patch normal)
ou XDIFF_PATCH_REVERSE
(patch reverso).
A partir da versão 1.5.0, também pode-se usar a operação binária OR para habilitar o sinalizador
XDIFF_PATCH_IGNORESPACE
.
error
Se fornecido, as partes rejeitadas serão armazenadas dentro desta variável.
Retorna a string corrigida ou false
em caso de erro.
Exemplo #1 Exemplo de xdiff_string_patch()
O código a seguir aplica alterações a alguns artigos.
<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* Digamos que alguém colou um patch em um formulário HTML */
$errors = '';
$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
echo "Novo artigo:\n";
echo $new_article;
}
if (strlen($errors)) {
echo "Rejeições: \n";
echo $errors;
}
?>