(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.
strA string original.
patchA 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.
errorSe 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;
}
?>