xdiff_file_patch
Patch a file with an unified diff
Description
mixed xdiff_file_patch(
string $file
,
string $patch
,
string $dest
,
int $flags
= DIFF_PATCH_NORMAL
)
Parameters
-
file
-
The original file.
-
patch
-
The unified patch file. It has to be created using xdiff_string_diff,
xdiff_file_diff functions or compatible tools.
-
dest
-
Path of the resulting file.
-
flags
-
Can be either XDIFF_PATCH_NORMAL
(default mode,
normal patch) or XDIFF_PATCH_REVERSE
(reversed
patch).
Starting from version 1.5.0, you can also use binary OR to enable
XDIFF_PATCH_IGNORESPACE
flag.
Return Values
Returns false
if an internal error happened, string with rejected
chunks if patch couldn't be applied or true
if patch has been successfully applied.
Examples
Example #1 xdiff_file_patch example
The following code applies unified diff to a file.
<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';
$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
echo "Rejects:\n";
echo $errors;
}
?>
Example #2 Patch reversing example
The following code reverses a patch.
<?php
$new_version = 'my_script-1.1.php';
$patch = 'my_script.patch';
$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
echo "Rejects:\n";
echo $errors;
}
?>