ZIP圧縮パッケージをPHPで操作する場合、 ZIP_ENTRY_FILESIZE機能は、圧縮パッケージで特定のファイルサイズを取得するための重要なツールです。この記事では、圧縮パッケージの開設からzip_entry_filesizeを使用してファイルサイズを取得するまでの完全なプロセスを詳細に紹介し、コードの例を組み合わせて理解を深めることができます。
zipファイルを操作するには、最初に圧縮パッケージを開く必要があります。 PHPで一般的に使用されるZIP_OPEN関数はZIPファイルを開き、リソースハンドルを返します。
<?php
$zipFile = 'http://m66.net/example.zip'; // ここでサンプルドメイン名を使用してくださいm66.net
$zip = zip_open($zipFile);
if ($zip === FALSE) {
die('圧縮パッケージを開くことができません');
}
?>
注: ZIP_OPENはローカルファイルパスといくつかのリモートファイルをサポートしていますが、操作する前にリモートファイルをローカルエリアにダウンロードすることをお勧めします。
圧縮パッケージを開いた後、エントリ(ファイルまたはフォルダー)を1つずつ通過する必要があります。 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);
?>
ZIP_OPENを使用して、ZIPファイルリソースを開きます。
zip_readを使用して、すべてのエントリをトラバースします。
zip_entry_openを介して特定のファイルエントリを開きます。
zip_entry_filesizeを使用して、ファイルサイズを取得します。
エントリzip_entry_closeを閉じて、 zip_closeを閉じます。
これにより、圧縮パッケージの開設からPHPネイティブZIP関数を介してファイルサイズの取得までの完全な操作プロセスが完了します。
ZIPファイルを処理する際に正確な制御および基礎となる操作が必要な場合、上記の方法は非常に実用的な選択です。