php 检查文件差异是不是存在并获取文件差异

Posted

技术标签:

【中文标题】php 检查文件差异是不是存在并获取文件差异【英文标题】:php check file diff exist and get file diffphp 检查文件差异是否存在并获取文件差异 【发布时间】:2013-05-08 07:29:31 【问题描述】:

如何使用 php 检查和查找两个文件之间的差异(例如 svn diff、netbeans diff)?

平台: Win 7 32bit, PHP 5.4.7 (VC9 X86 32bit thread safe), XAMPP Version 1.8.1

加载的扩展: Core, bcmath, calendar, ctype, date, ereg, filter, ftp, hash, iconv, json, mcrypt, SPL, odbc, pcre, Reflection, session, standard, mysqlnd ,标记器,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,套接字, sqlite3, xmlrpc, xsl, mhash

【问题讨论】:

使用,file()函数,比较行,高亮不同部分。 P.S.: 你试过了吗? @CORRUPT 我没有从这个答案***.com/questions/11895570/… 中找到我使用的任何脚本,我本可以自己创建,但现在我需要快速解决方案 【参考方案1】:

这完全取决于您希望如何比较文件。它们是文本文件还是二进制文件等。如果我们假设它们是文本文件,您必须决定是否应该忽略空格等。您可以做的是打开这两个文件进行比较,逐个字符地检查它们并进行比较。它归结为解决Longest Common Sub-sequence problem。我建议您开始查看用于比较的算法,例如在这里找到的

http://en.wikipedia.org/wiki/Diff#Algorithm

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

【讨论】:

【参考方案2】:

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

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

此扩展支持两种操作模式 - 字符串和文件,以及两种不同的补丁格式 - 统一和二进制。统一补丁非常适合文本文件,因为它们易于阅读且易于查看。对于存档或图像等二进制文件,二进制补丁将是适当的选择,因为它们是二进制安全的并且可以很好地处理不可打印的字符。

参考:

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

【讨论】:

感谢您的回复。我没有安装 xdiff。 下载dll文件并将其安装到xampp文件夹php.net/manual/en/install.windows.building.php987654322@内的ext文件夹中 你可以在这里下载blog.robandhannah.co.uk/wp-content/uploads/2010/10/…并阅读一些参考和指导在这里blog.brainmassage.co.uk/2010/10/php-xdiff-libxdiff-on-windows 此链接已失效php.net/manual/en/install.windows.building.php,我现在无法为 Windows 构建,因为这需要一些时间

以上是关于php 检查文件差异是不是存在并获取文件差异的主要内容,如果未能解决你的问题,请参考以下文章

存在于两个不同目录中的差异文件

获取两个excel文件之间的差异

如何获取产品今天和昨天价格的差异,并找出产品昨天是不是有货?

SQL 获取时间戳差异大于 30 时的 id 计数

PHP 与 Java 是不是存在能耗差异?

如何使用 Python 获取两个 PDF 文件的差异?