PHP检查文件diff是否存在并获取文件diff


php check file diff exist and get file diff

我如何检查和发现差异(e。gsvn diff, netbeans diff)之间的两个文件使用php?

平台: win7 32位,PHP 5.4.7 (VC9 X86 32位线程安全),XAMPP版本1.8.1

加载扩展: Core, bcmath, calendar, ctype, date, ereg, filter, ftp, hash, iconv, json, mcrypt, SPL, odbc, pcre, Reflection, session, standard, mysqlnd, tokenizer, zip, zlib, libxml, dom, PDO, bz2, SimpleXML, wddx, xml, xmlreader, xmlwriter, apache2handler, Phar, curl, mbstring, exif, gd, gettext, mysql, mysqli, pdo_mysql, pdo_sqlite, soap, sockets, sqlite3, xmlrpc, xsl, hash

这完全取决于您希望如何比较文件。它们是文本文件还是二进制文件等等。如果我们假设它们是文本文件,你必须决定是否应该忽略空白等。你能做的就是打开两个文件进行比较逐个字符地进行比较。归结起来就是解决最长公子序列问题。我建议大家看看这里的比较算法比如

http://en.wikipedia.org/wiki/Diff算法

另一种方法是包含patch(可以为Windows找到)并在后台运行以查找差异并构建补丁文件(因为我的猜测是您想要找到差异并能够存储它们并可能稍后应用它们?)

XDiff扩展对您的情况很有用,

xdiff扩展名允许您创建和应用包含不同版本文件之间差异的补丁文件。

这个扩展支持两种操作模式-对字符串和文件,以及两种不同的补丁格式-统一和二进制。统一的补丁对于文本文件来说是非常好的,因为它们是人类可读的,并且易于审查。对于像档案或图像这样的二进制文件,二进制补丁将是足够的选择,因为它们是二进制安全的,并且可以很好地处理不可打印的字符。

参考:

http://php.net/manual/en/function.xdiff-file-diff.php