【问题标题】: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 我没有从这个答案stackoverflow.com/questions/11895570/… 中找到我使用的任何脚本,我本可以自己创建,但现在我需要快速解决方案

标签: php diff


【解决方案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

    【讨论】:

    猜你喜欢
    • 2014-11-26
    • 2019-08-22
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多