PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

xdiff_file_diff_binary> <xattr_supported
Last updated: Mon, 26 Nov 2007

view this page in

xdiff Functions

简介

xdiff extension creates and applies patches to both text and binary files.

需求

To use xdiff, you will need libxdiff installed, available on the libxdiff homepage » http://www.xmailserver.org/xdiff-lib.html.

Note: You'll need at least libxdiff 0.7 for these functions to be aware of memory_limit.

安装

xdiff is currently available through PECL » http://pecl.php.net/package/xdiff.

If » PEAR is available on your *nix-like system you can use the pear installer to install the xdiff extension, by the following command: pear -v install xdiff.

You can always download the tar.gz package and install xdiff by hand:

Example#1 xdiff install by hand

gunzip xdiff-xxx.tgz
tar -xvf xdiff-xxx.tar
cd xdiff-xxx
phpize
./configure && make && make install

预定义常量

以下常量由本扩展模块定义,因此只有在本扩展模块被编译到 PHP 中,或者在运行时被动态加载后才有效。

XDIFF_PATCH_NORMAL (integer)
XDIFF_PATCH_REVERSE (integer)

Table of Contents



add a note add a note User Contributed Notes
xdiff
mg
02-Jul-2008 12:00
This seems to be fixed with newer version of libxdiff (which is used by xdiff extension).

According to library changelog:
--------------------------------------
* Sun, Mar 26 2006 - Davide Libenzi
  Fixed the missing end of line problem for text diff and patch.
--------------------------------------
amir.laher
05-Apr-2005 05:09
the xdiff functions require your initial string to end with a \n character.

When you use xdiff_string_diff, the initial string must either be zero-length or end with \n
eg. $patch= xdiff_string_diff($string,$string2);

if not, the patch will return an empty string.
xdiff_string_patch($string,$patch);

This will not normally affect xdiff_file_diff, but it's annoying nevertheless. To prevent this unexpected effect, I append a \n to the string before applying the initial diff, as follows.
if (!ereg("\n$",$string)) $string.="\n";

xdiff_file_diff_binary> <xattr_supported
Last updated: Mon, 26 Nov 2007
 
 
show source | credits | sitemap | contact | advertising | mirror sites