gzclose

関数の概要

gzclose は、PHPで圧縮ファイル(gzip形式)を扱う際に使用する関数で、gzopen などで開いたgzip圧縮ファイルのハンドルを閉じるために利用します。ファイル操作が終わった後にリソースを正しく解放するため、必ず呼び出す必要があります。

パラメータの説明

  • resource $zp : gzopen や他のgzファイル操作関数によって開かれたgzipファイルのリソース(ハンドル)を指定します。

戻り値

gzclose は、ファイルハンドルが正常に閉じられた場合に bool 型の true を返します。何らかの理由で閉じられなかった場合は false を返します。

使用例

基本的な使い方

<?php
// gzip圧縮ファイルを読み込みモードで開く
$zp = gzopen('example.gz', 'r');

if ($zp) {
    // ファイルの内容を読み込み
    while (!gzeof($zp)) {
        $line = gzgets($zp);
        echo $line;
    }
    // ファイルを閉じる
    gzclose($zp);
} else {
    echo "ファイルが開けませんでした。";
}
?>

この例では、gzip圧縮されたファイル example.gz を読み込み、内容を1行ずつ取得して表示しています。処理が終わったら必ず gzclose でファイルを閉じています。

gzip圧縮ファイルを書き込み後に閉じる

<?php
// gzip圧縮ファイルを作成し書き込みモードで開く
$zp = gzopen('output.gz', 'w');

if ($zp) {
    gzwrite($zp, "圧縮されたデータを書き込みます。n");
    gzclose($zp);
    echo "ファイルを閉じました。";
} else {
    echo "ファイルが開けませんでした。";
}
?>

ここでは書き込み用にgzipファイルを開き、1行の文字列を書き込んだあとに gzclose で必ず閉じています。閉じることで書き込みが確定されます。

gzip圧縮ファイルの追記とクローズ

<?php
// gzip圧縮ファイルを追記モードで開く
$zp = gzopen('append.gz', 'a');

if ($zp) {
    gzwrite($zp, "追加のデータを追記します。n");
    if (gzclose($zp)) {
        echo "ファイルを正常に閉じました。";
    } else {
        echo "ファイルのクローズに失敗しました。";
    }
} else {
    echo "ファイルが開けませんでした。";
}
?>

追記モードでファイルを開いた後、データを書き足して gzclose を使って閉じています。閉じる処理が成功したかどうかの判定も可能です。

関連する関数

  • gzopen – gzipファイルを開く
  • gzread – gzipファイルから読み込む
  • gzwrite – gzipファイルへ書き込む
  • gzeof – gzipファイルの終端判定
  • gzgets – gzipファイルから1行読み込む

まとめ

gzclose はgzip形式の圧縮ファイルをPHPで操作する際、開いたファイルリソースを安全に閉じるために必須の関数です。ファイル操作後に必ず呼び出すことで、リソースリークを防ぎデータの確実な保存を実現します。初歩的なファイル入出力と合わせて理解・活用すると、圧縮ファイルの扱いがスムーズになります。