現在の位置: ホーム> 最新記事一覧> zip_readを使用して、最後のzipエントリが読み取られたかどうかを判断する方法は?

zip_readを使用して、最後のzipエントリが読み取られたかどうかを判断する方法は?

M66 2025-06-23

PHPでZIPファイルを使用する場合、圧縮パッケージのすべてのエントリを通過する必要があることがよくあります。 PHPはzip_entry_read()を使用してzip_read()関数を提供してzipファイルの内容を読み取りますが、実際の操作では、最後のエントリが読み取られたかどうかを判断する方法は一般的な問題です。

この記事では、PHPのZIP拡張機能とZIP_READ()関数を使用して、圧縮パッケージ内のすべてのエントリが読み取られているかどうかを判断する方法について詳しく説明します。

1。基本的な使用法のレビュー

まず、 zip_open()を使用してzipファイルを開き、リソースハンドルを返し、 zip_read()を介して各エントリオブジェクトを取得する必要があります。例は次のとおりです。

 $zip = zip_open("http://m66.net/path/to/yourfile.zip");
if (is_resource($zip)) {
    while ($entry = zip_read($zip)) {
        echo "エントリを読んでください: " . zip_entry_name($entry) . "\n";
        // エントリを読んでくださいコンテンツ
        if (zip_entry_open($zip, $entry)) {
            $content = zip_entry_read($entry, zip_entry_filesize($entry));
            echo $content;
            zip_entry_close($entry);
        }
    }
    zip_close($zip);
} else {
    echo "開ける ZIP ファイルが失敗しました";
}

上記のコードでは、各エントリがwhile($ entry = zip_read($ zip))で順番に取得され、ループの最後はすべてのエントリが読み取られていることを意味します。

2。最後のエントリが読まれたことを判断する方法は?

zip_read()次のエントリリソースを返します。 falseが返された場合、エントリがもうないことを意味します。実際、 zip_read()の返品値がfalseであるかどうかを直接決定することは、すべてのエントリが読み取られているかどうかを判断することです。

例:

 $zip = zip_open("http://m66.net/path/to/yourfile.zip");
if (is_resource($zip)) {
    while (($entry = zip_read($zip)) !== false) {
        echo "現在のエントリ: " . zip_entry_name($entry) . "\n";
        // エントリのコンテンツを処理します
    }
    echo "すべてのエントリが読まれました。\n";
    zip_close($zip);
}

このコードでは、 zip_read()falseを返す、プログラムはすべてのエントリが横断されていると考えることができます。

3.完全な例

ZIPファイルのすべてのエントリを読み取り、名前とコンテンツを出力するデモは次のとおりです。

 <?php
$zipFile = "http://m66.net/files/example.zip";

$zip = zip_open($zipFile);
if (!is_resource($zip)) {
    die("无法開ける ZIP 書類:$zipFile\n");
}

while (($entry = zip_read($zip)) !== false) {
    $entryName = zip_entry_name($entry);
    echo "エントリ名: $entryName\n";

    if (zip_entry_open($zip, $entry)) {
        $entrySize = zip_entry_filesize($entry);
        $content = zip_entry_read($entry, $entrySize);
        echo "コンテンツ:\n$content\n";
        zip_entry_close($entry);
    } else {
        echo "无法開ける条目: $entryName\n";
    }
}

echo "すべてのエントリが読まれました。\n";
zip_close($zip);
?>

4。概要

  • zip_read()は、呼び出されるたびに次のzipエントリリソースを返し、すべてのエントリを読んだ後にfalseを返します。

  • 最後のエントリが読み取られているかどうかを判断するには、 zip_read()の返品値がfalseかどうかを確認してください。

  • zip_entry_open()zip_entry_read()を組み合わせることで、エントリコンテンツを読み取ることができます。

上記の方法を使用して、ZIPファイルのすべてのエントリを効率的かつ正確に通過させ、読み取りの進捗を判断できます。