【PHP8.x】gzread関数の使い方
gzread関数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
gzread関数は、gzip形式で圧縮されたファイルから指定されたバイト数のデータを読み込む関数です。この関数は、gzopen()関数などで開かれたgzipファイルポインタを第一引数に、そして読み込みたいデータの最大バイト数を第二引数に受け取ります。
具体的には、指定されたファイルポインタから圧縮されたデータを読み込み、それを伸長(解凍)して、指定されたバイト数までを文字列として返します。読み込みが成功した場合、読み込まれたデータが文字列として返されます。読み込むべきデータが残っていない、またはファイルの終端に達している場合は、空の文字列が返されます。もし何らかのエラーが発生して読み込みができなかった場合は、falseが返されます。
この関数は、通常のファイルを読み込むfread()関数と類似していますが、gzread()は内部でgzip圧縮データを自動的に伸長する点が異なります。これにより、圧縮された大きなファイルを直接、そして効率的に扱うことが可能になります。ファイルからデータを読み込み終えたら、gzclose()関数を使用してファイルポインタを適切に閉じる必要があります。
第二引数の読み込みバイト数に0を指定すると、この関数は空の文字列を返します。圧縮されたデータを取り扱うプログラムを開発する際には、このgzread関数がファイルの読み込み処理において重要な役割を果たします。
構文(syntax)
1<?php 2// gzread の動作に必要な圧縮ファイルを用意します 3$filename = "example.gz"; 4$original_data = "This is a simple test string for the gzread function."; 5 6// ファイルを圧縮して書き込む(gzreadの前提となる準備) 7$write_handle = gzopen($filename, 'wb9'); 8if ($write_handle) { 9 gzwrite($write_handle, $original_data); 10 gzclose($write_handle); 11} 12 13// gzread 関数の構文例 14// 圧縮ファイルポインタを開く 15$read_handle = gzopen($filename, 'rb'); 16 17if ($read_handle) { 18 $bytes_to_read = 1024; // 読み込む最大バイト数を指定します 19 20 // gzread を使用して圧縮ファイルからデータを読み込む 21 $read_data = gzread($read_handle, $bytes_to_read); 22 23 // ファイルポインタを閉じる 24 gzclose($read_handle); 25} 26 27// テスト用に作成したファイルを削除 28if (file_exists($filename)) { 29 unlink($filename); 30}
引数(parameters)
resource $stream, int $length
- resource $stream: 読み込み対象のgzファイルリソースを指定します。
- int $length: 読み込むバイト数を指定します。
戻り値(return)
string|false
指定されたファイルポインタからデータを読み込み、文字列として返します。読み込みに失敗した場合は false を返します。