【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 を返します。