使用PHP Zip擴展創建和解壓縮ZIP文件

一、什麼是PHP Zip擴展

PHP Zip擴展是PHP內置的擴展模塊之一,它提供了在PHP應用程序中創建和解壓縮ZIP文件的功能。Zip文件格式是一種常見的文件壓縮格式,通過將多個文件打包成一個Zip文件,可以減小文件的體積,方便傳輸和存儲。

PHP Zip擴展提供了一組API,可以在PHP應用程序中動態地創建、讀取和修改Zip文件。同時,PHP Zip擴展還支持密碼保護,可以給Zip文件添加密碼保護,使得只有知道密碼的人才能解壓縮文件。

二、使用PHP Zip擴展創建Zip文件

使用PHP Zip擴展創建Zip文件,需要先調用ZipArchive類的open()方法打開一個Zip文件,然後使用addFile()方法依次添加要壓縮的文件,最後調用close()方法關閉Zip文件即可。

下面是一個創建Zip文件的例子:

/**
 * 打包文件到Zip文件中
 * @param string $zipFilename 壓縮後的Zip文件名
 * @param array $files 要壓縮的文件列表,每個元素為一個數組,包含兩個元素:本地文件路徑和Zip文件路徑
 * @param string $password Zip文件的密碼
 * @return bool
 */
function zipFiles($zipFilename, $files, $password=null)
{
    // 創建ZipArchive對象
    $zip = new ZipArchive;
    if ($zip->open($zipFilename, ZipArchive::CREATE) !== TRUE) {
        return false;
    }

    if (!empty($password)) {
        $zip->setPassword($password);
    }

    // 添加要壓縮的文件
    foreach($files as $file) {
        $localfile = $file[0];
        $zipfile = $file[1];
        $zip->addFile($localfile, $zipfile);
    }

    // 關閉Zip文件
    $zip->close();

    return true;
}

上面的例子中,zipFiles()函數接受3個參數:要壓縮的文件列表、壓縮後的Zip文件名和Zip文件的密碼(可選)。函數內部先創建了一個ZipArchive對象,並調用它的open()方法打開要壓縮的Zip文件。然後,使用setPassword()方法設置Zip文件的密碼(如果有的話)。接著,使用addFile()方法依次添加要壓縮的文件,每個元素包含兩個參數:本地文件路徑和Zip文件路徑。最後,調用close()方法關閉Zip文件。

三、使用PHP Zip擴展解壓縮Zip文件

使用PHP Zip擴展解壓縮Zip文件,需要先調用ZipArchive類的open()方法打開一個Zip文件,然後使用extractTo()方法解壓縮文件到指定目錄,最後調用close()方法關閉Zip文件即可。

下面是一個解壓縮Zip文件的例子:

/**
 * 解壓縮Zip文件到指定目錄
 * @param string $zipFilename 要解壓的Zip文件名
 * @param string $targetDir 解壓縮後的目標目錄
 * @param string $password Zip文件的密碼
 * @return bool
 */
function unzipFiles($zipFilename, $targetDir, $password=null)
{
    // 創建ZipArchive對象
    $zip = new ZipArchive;
    if ($zip->open($zipFilename) !== TRUE) {
        return false;
    }

    if (!empty($password)) {
        $zip->setPassword($password);
    }

    // 解壓縮文件到指定目錄
    $zip->extractTo($targetDir);

    // 關閉Zip文件
    $zip->close();

    return true;
}

上面的例子中,unzipFiles()函數接受3個參數:要解壓縮的Zip文件名、解壓縮後的目標目錄和Zip文件的密碼(可選)。函數內部先創建了一個ZipArchive對象,並調用它的open()方法打開要解壓縮的Zip文件。然後,使用setPassword()方法設置Zip文件的密碼(如果有的話)。接著,使用extractTo()方法解壓縮文件到指定目錄。最後,調用close()方法關閉Zip文件。

原創文章,作者:GTXR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144746.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GTXR的頭像GTXR
上一篇 2024-10-26 11:52
下一篇 2024-10-26 11:52

相關推薦

發表回復

登錄後才能評論