前言
近幾日,用爬蟲采集的了一些數據,存放到硬盤中,隨着數據量越來越多,所以想上傳到網盤當中,可是不加下密又覺得不放心,
所以開始用PHP的zip模塊進行壓縮加密.
開始
$zipArc = new \ZipArchive();
if ($zipArc->open('/home/test.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE) === true) {
//設置密碼 注意此處不是加密,僅僅是設置密碼
if (!$zipArc->setPassword('password')) {
throw new RuntimeException('Set password failed');
}
//往壓縮包內添加文件
$zipArc->addFile('/home/test.png', '1/test.png');
//加密文件 此處文件名及路徑是壓縮包內的
if (!$zipArc->setEncryptionName('1/test.png', ZipArchive::EM_AES_256)) {
throw new RuntimeException('Set encryption failed');
}
}
2 方法找不到
提示沒有setEncryptionName和setEncryptionIndex方法時,請編譯時zip模塊時用以下參數
--with-libzip
--enable-zip
3 目錄結構問題
待壓縮的文件目錄,比說說是/home/test/a.png
壓縮后,你發現壓縮包內的目錄結構是/home/test/a.png,
也就是說壓縮包原封不動的保持了原來文件的目錄.可是我們想自定義壓縮包目錄怎么辦呢?
$a = '/home/test.png';
$b = '1/test.png';
//$a是待添加的文件路徑 $b是壓縮包內的路徑
$zipArc->addFile($a, $b);
