【PHP8.x】gzread関数の使い方

作成日: 更新日:

gzread関数は、gzip形式で圧縮されたファイルから指定されたバイト数のデータを読み込む関数です。この関数は、gzopen()関数などで開かれたgzipファイルポインタを第一引数に、そして読み込みたいデータの最大バイト数を第二引数に受け取ります。

具体的には、指定されたファイルポインタから圧縮されたデータを読み込み、それを伸長(解凍)して、指定されたバイト数までを文字列として返します。読み込みが成功した場合、読み込まれたデータが文字列として返されます。読み込むべきデータが残っていない、またはファイルの終端に達している場合は、空の文字列が返されます。もし何らかのエラーが発生して読み込みができなかった場合は、falseが返されます。

この関数は、通常のファイルを読み込むfread()関数と類似していますが、gzread()は内部でgzip圧縮データを自動的に伸長する点が異なります。これにより、圧縮された大きなファイルを直接、そして効率的に扱うことが可能になります。ファイルからデータを読み込み終えたら、gzclose()関数を使用してファイルポインタを適切に閉じる必要があります。

第二引数の読み込みバイト数に0を指定すると、この関数は空の文字列を返します。圧縮されたデータを取り扱うプログラムを開発する際には、このgzread関数がファイルの読み込み処理において重要な役割を果たします。

基本的な使い方

構文(syntax)

<?php
// gzread の動作に必要な圧縮ファイルを用意します
$filename = "example.gz";
$original_data = "This is a simple test string for the gzread function.";

// ファイルを圧縮して書き込む(gzreadの前提となる準備)
$write_handle = gzopen($filename, 'wb9');
if ($write_handle) {
    gzwrite($write_handle, $original_data);
    gzclose($write_handle);
}

// gzread 関数の構文例
// 圧縮ファイルポインタを開く
$read_handle = gzopen($filename, 'rb');

if ($read_handle) {
    $bytes_to_read = 1024; // 読み込む最大バイト数を指定します

    // gzread を使用して圧縮ファイルからデータを読み込む
    $read_data = gzread($read_handle, $bytes_to_read);

    // ファイルポインタを閉じる
    gzclose($read_handle);
}

// テスト用に作成したファイルを削除
if (file_exists($filename)) {
    unlink($filename);
}

引数(parameters)

resource $stream, int $length

  • resource $stream: 読み込み対象のgzファイルリソースを指定します。
  • int $length: 読み込むバイト数を指定します。

戻り値(return)

string|false

指定されたファイルポインタからデータを読み込み、文字列として返します。読み込みに失敗した場合は false を返します。

【PHP8.x】gzread関数の使い方 | いっしー@Webエンジニア