首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP ZIP 檔案內容比較類:偵測新增、刪除與相同檔案

     編輯:PHP 綜合知識

比較兩個 ZIP 壓縮檔內容差異,回傳新增、刪除、相同檔案清單,支援單層結構。

類別 ZipCompare

<?php
class ZipCompare{
    public function compare($zipfile1, $zipfile2){
        if(!$this->check_handler()) throw new Exception('unzip not install');
        if(!$this->check($zipfile1) || !$this->check($zipfile2)) throw new Exception('zipfile not exists or error');
        $zipinfo1 = $this->getInfo($zipfile1);
        $zipinfo2 = $this->getInfo($zipfile2);
        return $this->parse($zipinfo1, $zipinfo2);
    }
    private function getInfo($zipfile){
        $fields = array('Length','Method','Size','Cmpr','Date','Time','CRC-32','Name');
        exec("unzip -v ".escapeshellarg($zipfile), $output);
        // 解析 $output 取得檔案清單...
    }
    private function parse($info1,$info2){
        // 比較邏輯:以檔案名+CRC32 判斷同一檔案
        // 回傳 array('added'=>[], 'removed'=>[], 'same'=>[])
    }
    private function check($zipfile){ return file_exists($zipfile) && is_readable($zipfile); }
    private function check_handler(){ return @exec('which unzip') !== ''; }
}
?>

使用場景

  • 使用者上傳更新包,僅處理變更檔案以節省資源。
  • 部署驗證:確認釋出套件內容一致性。

注意

  • 需系統安裝 unzip 指令。
  • 目前僅支援單層目錄,遞迴目錄需擴充解析邏輯。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved