PHP extension for creating and applying patches to both text and binary files. Wraps the libxdiff library.
pie install pecl/xdiffpecl install xdiffRequires libxdiff with xdl_set_allocator, xdl_rabdiff, and XDL_PATCH_IGNOREBSPACE support.
phpize
./configure --with-xdiff
make
make installxdiff_string_diff(string $str1, string $str2, int $context = 3, bool $minimal = false): string|falseCreates a unified diff of two strings. $context sets the number of surrounding lines. $minimal reduces diff size at the cost of speed.
xdiff_file_diff(string $file1, string $file2, string $dest, int $context = 3, bool $minimal = false): boolCreates a unified diff of two files and writes the result to $dest.
xdiff_string_diff_binary(string $str1, string $str2): string|falseCreates a binary diff of two strings.
xdiff_file_diff_binary(string $file1, string $file2, string $dest): boolCreates a binary diff of two files and writes the result to $dest.
xdiff_string_rabdiff(string $str1, string $str2): string|falseCreates a binary diff of two strings using the Rabin fingerprint algorithm.
xdiff_file_rabdiff(string $file1, string $file2, string $dest): boolCreates a binary diff of two files using the Rabin fingerprint algorithm and writes the result to $dest.
xdiff_string_patch(string $file, string $patch, int $flags = XDIFF_PATCH_NORMAL, ?string &$error = null): string|boolApplies a unified patch to a string. Returns the patched string, or false on error. Rejected chunks are returned via $error.
$flags: XDIFF_PATCH_NORMAL (default) or XDIFF_PATCH_REVERSE.
xdiff_file_patch(string $file, string $patch, string $dest, int $flags = XDIFF_PATCH_NORMAL): string|boolApplies a unified patch from a file. Returns true on success, a string of rejected chunks on partial failure, or false on error.
xdiff_string_patch_binary(string $str, string $patch): string|falseApplies a binary patch to a string. Works with both bdiff and rabdiff patches.
xdiff_file_patch_binary(string $file, string $patch, string $dest): boolApplies a binary patch from a file and writes the result to $dest.
xdiff_string_merge3(string $str1, string $str2, string $str3, ?string &$error = null): string|boolThree-way merge of strings. Returns the merged string, or false on error. Conflicts are returned via $error.
xdiff_file_merge3(string $file1, string $file2, string $file3, string $dest): string|boolThree-way merge of files. Returns true on success, a string of rejected chunks on conflict, or false on error.
xdiff_string_bdiff_size(string $patch): int|falseReturns the size of the file that would be created by applying the given binary patch.
xdiff_file_bdiff_size(string $patch_file): int|falseSame as above, but reads the patch from a file.
| Constant | Description |
|---|---|
XDIFF_PATCH_NORMAL |
Apply patch normally (default) |
XDIFF_PATCH_REVERSE |
Reverse the patch |
XDIFF_PATCH_IGNORESPACE |
Ignore whitespace when patching |