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

search for in the

xdiff_file_diff_binary> <xattr_supported
[edit] Last updated: Mon, 01 Nov 2010

view this page in

CLXXV. xdiff Functions

Einführung

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

Anforderungen

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

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

Installation

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:

Beispiel 2238. xdiff install by hand


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

   

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

XDIFF_PATCH_NORMAL (integer)
XDIFF_PATCH_REVERSE (integer)

Inhaltsverzeichnis

xdiff_file_diff_binary — Make binary diff of two files
xdiff_file_diff — Make unified diff of two files
xdiff_file_merge3 — Merge 3 files into one
xdiff_file_patch_binary — Patch a file with a binary diff
xdiff_file_patch — Patch a file with an unified diff
xdiff_string_diff_binary — Make binary diff of two strings
xdiff_string_diff — Make unified diff of two strings
xdiff_string_merge3 — Merge 3 strings into one
xdiff_string_patch_binary — Patch a string with a binary diff
xdiff_string_patch — Patch a string with an unified diff


add a note add a note User Contributed Notes xdiff Functions
mg 01-Jul-2008 09: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 02: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";

 
show source | credits | sitemap | contact | advertising | mirror sites