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

作成日: 更新日:

gzgetc関数は、gzopen関数で開かれたGZIPファイルポインタから、1文字を読み込む処理を実行する関数です。この関数は、指定されたファイルポインタの現在位置から1バイトのデータを読み取り、成功するとファイルポインタを次のバイトへ自動的に進めます。基本的な動作は、非圧縮ファイルを扱う標準のfgetc関数と似ていますが、gzgetc関数はGZIP形式で圧縮されたファイルを直接扱える点が特徴です。引数には、gzopen関数を使い読み込みモードで開いた際に返される、有効なファイルポインタを指定する必要があります。関数の返り値は、読み込みに成功した場合はその文字を含む文字列となり、ファイルの終端(EOF)に達した場合や何らかのエラーが発生した場合にはfalseを返します。ファイルの終わりに達したことを確実に判定するためには、この関数がfalseを返した際に、gzeof関数を併用して確認することが推奨されます。この関数は、圧縮されたログファイルなどを1文字ずつ解析するような特定の処理で役立ちます。

基本的な使い方

構文(syntax)

<?php

file_put_contents('compress.zlib://data.txt.gz', 'PHP');

$handle = gzopen('data.txt.gz', 'r');

$character_or_false = gzgetc($handle);

gzclose($handle);

unlink('data.txt.gz');

?>

引数(parameters)

resource $stream

  • resource $stream: 読み込み対象のzlib圧縮されたファイルストリームリソース

戻り値(return)

string|false

指定されたgzipファイルポインタから1文字を読み込み、その文字を文字列として返します。ファイルの終端に達した場合やエラーが発生した場合はfalseを返します。

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