(PECL xdiff >= 0.2.0)
xdiff_file_patch — Patch a file with an unified diff
$file
   , string $patch
   , string $dest
   [, int $flags = DIFF_PATCH_NORMAL
  ] )
   Patches a file with a patch and stores the result in a file.
   patch has to be an unified diff created by 
   xdiff_file_diff()/xdiff_string_diff() function. 
   An optional flags parameter specifies mode of operation.
  
fileThe original file.
patchThe unified patch file. It has to be created using xdiff_string_diff(), xdiff_file_diff() functions or compatible tools.
destPath 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.
      
   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.
  
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;
}
?>