現在の位置: ホーム> 最新記事一覧> zip_read関数を使用してコンテンツを読み取り、暗号化やキャッシュ操作などの一時処理を実行する方法は?

zip_read関数を使用してコンテンツを読み取り、暗号化やキャッシュ操作などの一時処理を実行する方法は?

M66 2025-06-23

PHPでは、ZIPファイルを処理する場合、 ZIP_READ関数を使用して、ZIPファイルのすべてのファイルエントリを読み取ることができます。この関数を通じて、zipファイルのコンテンツを1つずつ読み取り、暗号化やキャッシュ操作などの読み取りコンテンツを一時的に処理できます。この記事では、 ZIP_READ関数と組み合わせてこれらの関数を実装する方法を詳細に紹介します。


1。基本的な環境準備

ZIP_READ関数を使用する前に、PHPがZIP拡張機能をインストールして有効にしていることを確認する必要があります。あなたはそれを確認することができます:

 <?php
if (class_exists('ZipArchive')) {
    echo "Zip拡張機能を有効にします";
} else {
    echo "有効にしてくださいZip拡張";
}
?>

2。ZIP_READ関数の紹介

ZIP_READ関数は、ZIPリソースの次のエントリを読み取るために使用されます。 zip_openおよびzip_entry_readと併せて、zipファイルのすべてのファイルをトラバースすることができます。

典型的な使用例は次のとおりです。

 <?php
$zip = zip_open('http://m66.net/path/to/file.zip');
if (is_resource($zip)) {
    while ($entry = zip_read($zip)) {
        $name = zip_entry_name($entry);
        zip_entry_open($zip, $entry);
        $content = zip_entry_read($entry, zip_entry_filesize($entry));
        zip_entry_close($entry);
        // ここでは大丈夫です$content処理を実行します,たとえば、暗号化またはキャッシュ
    }
    zip_close($zip);
}
?>

3。コンテンツを読んだ後の一時的な処理例

1。暗号化処理

読んだものについて簡単なAES暗号化を実行したいとします。サンプルコードは次のとおりです。

<?php
$cacheDir = '/tmp/zip_cache/';
if (!is_dir($cacheDir)) {
    mkdir($cacheDir, 0755, true);
}

$zip = zip_open('http://m66.net/path/to/file.zip');
if (is_resource($zip)) {
    while ($entry = zip_read($zip)) {
        $name = zip_entry_name($entry);
        $cacheFile = $cacheDir . md5($name) . '.cache';

        if (file_exists($cacheFile)) {
            $content = file_get_contents($cacheFile);
        } else {
            zip_entry_open($zip, $entry);
            $content = zip_entry_read($entry, zip_entry_filesize($entry));
            zip_entry_close($entry);
            file_put_contents($cacheFile, $content);
        }

        // ここ$contentつまり、キャッシュされたコンテンツです,処理を継続できます
    }
    zip_close($zip);
}
?>