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

CLXX. Fonctions xdiff

Introduction

L'extension xdiff crée et applique des patches aux fichiers binaires et textes.

Pré-requis

Pour utiliser xdiff, vous aurez besoin de libxdiff, disponible sur le site web de libxdiff http://www.xmailserver.org/xdiff-lib.html.

Note : Vous devez avoir au moins la version 0.7 de la bibliothèque libxdiff pour que ces fonctions prennent en compte le paramètre memory_limit.

Installation

xdiff est actuellement disponible dans PECL http://pecl.php.net/package/xdiff.

Si PEAR est disponible sur votre système *nix vous pouvez utiliser l'installateur PEAR pour installer l'extension xdiff avec la commande suivante : pear -v install xdiff.

Vous pouvez toujours télécharger le tar.gz et installer xdiff à la main :

Exemple 1. Installation à la main de xdiff

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

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XDIFF_PATCH_NORMAL (entier)

XDIFF_PATCH_REVERSE (entier)

Table des matières
xdiff_file_diff_binary -- Créé un diff binaire de deux fichiers
xdiff_file_diff -- Créé un diff unifié entre deux fichiers
xdiff_file_merge3 -- Fusionne trois fichiers en un seul
xdiff_file_patch_binary -- Patche un fichier avec un diff binaire
xdiff_file_patch -- Patche un fichier avec un diff unifié
xdiff_string_diff_binary -- Créé un diff binaire de deux chaînes
xdiff_string_diff -- Créé un diff unifié entre deux chaînes
xdiff_string_merge3 -- Fusionne trois chaînes en une seule
xdiff_string_patch_binary -- Patche une chaîne avec un diff binaire
xdiff_string_patch -- Patche une chaîne avec un diff unifié


add a note add a note User Contributed Notes Fonctions xdiff
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