2013-05-14 47 views
0

如何使用php檢查和發現兩個文件之間的差異(例如svn diff,netbeans差異)?php檢查文件diff是否存在並獲取文件差異

平臺: Win 7的32位,PHP 5.4.7(VC9 X86 32位線程安全),XAMPP版本1.8.1

加載擴展:核心,bcmath時,日曆,CTYPE,日期,額日格,過濾器,ftp,哈希,iconv,json,mcrypt,SPL,odbc,pcre,反射,會話,標準,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,mhash

+1

使用,['文件()'](http://ru2.php.net/manual/en/function.file.php)功能,比較線,高亮不同的部分。 *** PS:*** _你有沒有嘗試過任何東西?_ – BlitZ 2013-05-14 05:57:14

+0

@CORRUPT我沒有找到任何腳本,我用這個答案找到了融合http://stackoverflow.com/questions/11895570/diff-multiple-versions-of -a項目我可以創建自己的,但現在我需要快速解決方案 – 2013-05-14 06:11:38

回答

2

這一切都取決於您希望如何比較文件。它們是文本文件還是二進制文件等。如果我們假設它們是文本文件,則必須決定是否應忽略空格。您可以執行的操作是打開兩個文件進行比較,並逐字逐句比較它們​​。它歸結到的是解決Longest Common Sub-sequence problem。我建議你開始尋找算法對於像這裏找到例如比較

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

另一種方法是包括patch(可發現Windows中)和運行在後臺發現差異並建立補丁文件(因爲我的猜測是,你要查找的差異,能夠存儲它們,也許以後應用它們?)

2

x差值擴展到你的情況是有用的,

XD iff擴展使您能夠創建並應用包含不同修訂版本文件之間差異的修補程序文件。

此擴展支持兩種操作模式 - 字符串和文件,以及兩種不同的補丁格式 - 統一和二進制。統一的修補程序非常適合文本文件,因爲它們易於閱讀且易於查看。對於像檔案或圖像這樣的二進制文件,二進制補丁將是充分的選擇,因爲它們是二進制安全的並且很好地處理不可打印的字符。

參考:

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

+0

感謝您的答覆。我沒有安裝xdiff。 – 2013-05-14 06:42:24

+0

下載並安裝到xampp文件夾內的ext文件夾中的dll文件http://www.php.net/manual/en/install.windows.building.php – Sundar 2013-05-14 06:43:47

+0

你可以在這裏下載http://blog.robandhannah.co.uk /wp-content/uploads/2010/10/php_xdiff1.zip並閱讀一些參考和指導這裏http://blog.brainmassage.co.uk/2010/10/php-xdiff-libxdiff-on-windows/ – Sundar 2013-05-14 06:46:39