xdiff_string_patch
(PECL xdiff >= 0.2.0)
xdiff_string_patch — Patch a string with an unified diff
Description
$str
, string $patch
[, int $flags
[, string &$error
]] )
Patches a str
string with an unified patch in patch
parameter
and returns the result. patch
has to be an unified diff created by
xdiff_file_diff()/xdiff_string_diff() function.
An optional flags
parameter specifies mode of operation. Any
rejected parts of the patch will be stored inside error
variable if
it is provided.
Parameters
-
str
-
The original string.
-
patch
-
The unified patch string. It has to be created using xdiff_string_diff(), xdiff_file_diff() functions or compatible tools.
-
flags
-
flags
can be eitherXDIFF_PATCH_NORMAL
(default mode, normal patch) orXDIFF_PATCH_REVERSE
(reversed patch).Starting from version 1.5.0, you can also use binary OR to enable
XDIFF_PATCH_IGNORESPACE
flag. -
error
-
If provided then rejected parts are stored inside this variable.
Return Values
Returns the patched string, or FALSE
on error.
Examples
Example #1 xdiff_string_patch() example
The following code applies changes to some article.
<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* Let's say that someone pasted a patch to html form */
$errors = '';
$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
echo "New article:\n";
echo $new_article;
}
if (strlen($errors)) {
echo "Rejects: \n";
echo $errors;
}
?>
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с файловой системой
- xdiff
- xdiff_file_bdiff_size
- xdiff_file_bdiff
- xdiff_file_bpatch
- xdiff_file_diff_binary
- xdiff_file_diff
- xdiff_file_merge3
- xdiff_file_patch_binary
- xdiff_file_patch
- xdiff_file_rabdiff
- xdiff_string_bdiff_size
- xdiff_string_bdiff
- xdiff_string_bpatch
- xdiff_string_diff_binary
- xdiff_string_diff
- xdiff_string_merge3
- xdiff_string_patch_binary
- xdiff_string_patch
- xdiff_string_rabdiff
Коментарии
404 Not Found