PHPのzip_entry_compressed_size()関数とは?ZIPエントリの圧縮後サイズを取得する方法を解説
zip_entry_compressed_size()関数は、ZIPアーカイブ内のエントリ(ファイル)の圧縮後のサイズを取得するための関数です。ZIPファイルを開いて各エントリを読み込む際に、そのファイルが実際にどれだけの容量で格納されているかを確認できます。
構文
zip_entry_compressed_size(zip_entry)
パラメータ
zip_entry − サイズを取得したいZIPエントリのリソース。必須のパラメータです。通常は
zip_read()で読み込んだエントリを指定します。
戻り値
指定したZIPアーカイブエントリの圧縮後のファイルサイズ(バイト数)を返します。元のファイルサイズ(圧縮前のサイズ)を取得したい場合は、zip_entry_filesize()関数を使用してください。
使用例
次の例では、「new.zip」というZIPアーカイブを開き、含まれている各ファイルの圧縮後サイズを順番に取得して表示します。
<?php
$zip = zip_open("new.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Compressed = " . zip_entry_compressed_size($zip_entry) . "<br />";
}
zip_close($zip);
}
?>
出力結果
Compressed = 90 Compressed = 12 Compressed = 67
このように、アーカイブ内の各エントリに対して圧縮後のサイズがバイト単位で出力されます。
注意:Zip関数は非推奨
なお、zip_open()やzip_read()などの旧式のZip関数群は、PHP 7.4.0で非推奨となり、PHP 8.0.0で削除されました。現在の開発では、オブジェクト指向のZipArchiveクラスを使用することが推奨されています。
ZipArchiveクラスでは、statIndex()メソッドの返す配列の「comp_size」キーから、同等の圧縮後サイズ情報を取得できます。
-
PHPのzip_entry_open()関数とは?ZIPエントリを読み取り用に開く方法を解説
zip_entry_open() 関数は、ZIPアーカイブ内のエントリを読み取り用に開くためのPHP組み込み関数です。この関数を使うことで、圧縮ファイルの中身にアクセスし、内容を読み出す準備が整います。 注意:非推奨となった関数 なお、zip_entry_open() を含む zip_* 系の関数は PHP 7.4.0 以降で非推奨となっており、PHP 8.0.0 で削除されました。現在の開発では、代わりに ZipArchive クラスを使用することが推奨されています。 構文(Syntax) zip_entry_open(zip_file, zip_entry, mode) パラメータ(
-
PHPのzip_entry_close()関数とは?使い方とサンプルコードを解説
PHPのzip_entry_close()関数は、zip_entry_open()関数によって開かれたZIPアーカイブ内のエントリを閉じるために使用されます。ZIPファイルを読み込んだ後は、リソースを適切に解放するためにこの関数でエントリを閉じることが推奨されます。構文zip_entry_close(zip_entry)パラメータzip_entry − 閉じたいZIPエントリのリソースを指定します。このパラメータは必須です。戻り値zip_entry_close()関数は、処理が成功した場合にTRUEを返し、失敗した場合にFALSEを返します。使用例以下は具体的な使用例です。ここでは、アーカイブ