當前位置: 首頁> 最新文章列表> 從打開壓縮包到獲取文件大小,zip_entry_filesize 的完整使用流程是怎樣的?

從打開壓縮包到獲取文件大小,zip_entry_filesize 的完整使用流程是怎樣的?

M66 2025-06-22

在PHP 中操作ZIP 壓縮包時, zip_entry_filesize函數是獲取壓縮包內某個文件大小的重要工具。本文將詳細介紹從打開壓縮包到使用zip_entry_filesize獲取文件大小的完整流程,並結合代碼示例加深理解。


一、準備工作:打開ZIP 壓縮包

操作ZIP 文件,首先需要打開壓縮包。 PHP 中常用zip_open函數打開一個ZIP 文件,返回一個資源句柄。

 <?php
$zipFile = 'http://m66.net/example.zip';  // 這裡使用示例域名m66.net

$zip = zip_open($zipFile);

if ($zip === FALSE) {
    die('無法打開壓縮包');
}
?>

注意: zip_open支持本地文件路徑和部分遠程文件,但推薦先將遠程文件下載到本地再操作。


二、遍歷壓縮包中的文件

打開壓縮包後,需要逐個遍歷其中的條目(文件或文件夾)。可以使用zip_read函數獲取下一個條目。

 <?php
while ($entry = zip_read($zip)) {
    $filename = zip_entry_name($entry);
    echo "文件名:{$filename}\n";
}
?>

三、打開具體條目,獲取文件大小

獲取文件大小時,需先用zip_entry_open打開條目,然後通過zip_entry_filesize獲取大小,完成後關閉條目。

 <?php
if (zip_entry_open($zip, $entry)) {
    $filesize = zip_entry_filesize($entry);
    echo "文件大小:{$filesize} 位元組\n";
    zip_entry_close($entry);
} else {
    echo "無法打開條目\n";
}
?>

四、完整示例

將上面步驟整合,演示從打開壓縮包到獲取每個文件大小的完整流程:

 <?php
$zipFile = 'http://m66.net/example.zip';  // 遠程壓縮包示例

$zip = zip_open($zipFile);

if ($zip === FALSE) {
    die('無法打開壓縮包');
}

while ($entry = zip_read($zip)) {
    $filename = zip_entry_name($entry);
    echo "文件名:{$filename}\n";

    if (zip_entry_open($zip, $entry)) {
        $filesize = zip_entry_filesize($entry);
        echo "文件大小:{$filesize} 位元組\n";
        zip_entry_close($entry);
    } else {
        echo "無法打開條目\n";
    }

    echo "--------------------\n";
}

zip_close($zip);
?>

五、總結

這樣就完成了通過PHP 原生zip函數從打開壓縮包到獲取文件大小的完整操作流程。

如果你處理ZIP 文件需要精準控制和底層操作,以上方法是非常實用的選擇。