gzgetc

関数の概要

gzgetcは、PHPでgzip圧縮されたファイルやデータを読み込むための関数で、圧縮ファイルから1バイト(1文字)ずつ取得します。gzip形式のファイルを扱う際に便利で、ファイルポインタを使ってデータを順次読み出せるのが特徴です。

パラメータの説明

  • resource $zpgzopenなどでオープンしたgzファイルのリソースハンドル。読み込む対象の圧縮ファイルを指定します。

戻り値

正常に1文字読み込めた場合は、その文字の文字列を返します。ファイルの終端に達した場合やエラー時は false が返されます。

使用例

基本的な使い方

<?php
$handle = gzopen('example.gz', 'r');
if ($handle) {
    while (($char = gzgetc($handle)) !== false) {
        echo $char;
    }
    gzclose($handle);
} else {
    echo "ファイルを開けませんでした";
}
?>

この例では、gzip圧縮された「example.gz」ファイルを1文字ずつ読み出し、標準出力に表示しています。ファイルの終端までループ処理が続きます。

gzipファイルの先頭5文字だけ取得する例

<?php
$handle = gzopen('example.gz', 'r');
if ($handle) {
    for ($i = 0; $i < 5; $i++) {
        $char = gzgetc($handle);
        if ($char === false) {
            break;
        }
        echo $char;
    }
    gzclose($handle);
} else {
    echo "ファイルを開けませんでした";
}
?>

ファイルが存在し、読み込める場合に先頭5文字だけを取得して表示します。短く内容を確認したいときに便利です。

gzipファイルの内容を配列に保存する例

<?php
$handle = gzopen('data.gz', 'r');
$chars = [];
if ($handle) {
    while (($char = gzgetc($handle)) !== false) {
        $chars[] = $char;
    }
    gzclose($handle);
    print_r($chars);
} else {
    echo "ファイルオープン失敗";
}
?>

読み込んだ1文字ずつを配列に格納し、後からデータ操作や解析に使う場合の例です。

関連する関数

  • gzopen – gzip圧縮されたファイルを開く
  • gzgets – gzipファイルから一行ずつ読み込む
  • gzread – gzipファイルから指定バイト数読み込む
  • gzclose – gzipファイルを閉じる

まとめ

gzgetcはgzip圧縮ファイルから1文字ずつ読み込むのに適した関数で、細かいデータ処理や逐次読み込みに便利です。gzopenでファイルを開いた後に使用し、ループ処理で文字単位の読み取りが可能です。ファイルの終端やエラー時にはfalseを返すため、必ず判定しながら使いましょう。gzipファイルを扱う際に基本的かつ実務で役立つ関数です。