関数の概要
gzgetcは、PHPでgzip圧縮されたファイルやデータを読み込むための関数で、圧縮ファイルから1バイト(1文字)ずつ取得します。gzip形式のファイルを扱う際に便利で、ファイルポインタを使ってデータを順次読み出せるのが特徴です。
パラメータの説明
resource $zp–gzopenなどでオープンした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ファイルを扱う際に基本的かつ実務で役立つ関数です。
