関数の概要
gzfile はPHPでgz圧縮されたファイルを読み込み、その内容を配列形式で取得するための関数です。圧縮されたテキストファイルを行ごとに読み込む際に便利で、ファイルの内容を一度に配列で扱いたい場合に利用されます。
パラメータの説明
filename(必須): 読み込むgz圧縮ファイルのパスを指定します。use_include_path(省略可能、デフォルトはFALSE): インクルードパスでファイルを探す場合はTRUEに設定します。
戻り値
成功すると、読み込んだファイルの各行が配列の要素として格納された配列を返します。ファイルの読み込みに失敗した場合は FALSE を返します。
使用例
基本的な使い方
<?php
$lines = gzfile('example.gz');
if ($lines !== false) {
foreach ($lines as $line) {
echo htmlspecialchars($line) . "<br>";
}
} else {
echo "ファイルの読み込みに失敗しました。";
}
?>
ここでは example.gz というgz圧縮ファイルを読み込み、各行をブラウザに表示しています。
インクルードパスを利用してファイルを読み込む例
<?php
$lines = gzfile('example.gz', true);
if ($lines !== false) {
print_r($lines);
} else {
echo "ファイルが見つかりません。";
}
?>
第2引数に true を指定すると、インクルードパスにあるファイルも対象に読み込みを試みます。
読み込んだ内容を加工して使う例
<?php
$lines = gzfile('data.gz');
if ($lines !== false) {
$trimmed = array_map('trim', $lines);
$filtered = array_filter($trimmed, function($line) {
return $line !== '';
});
foreach ($filtered as $line) {
echo $line . "<br>";
}
} else {
echo "圧縮ファイルの読み込みに失敗しました。";
}
?>
読み込んだ各行の前後の空白を取り除き、空行を除外して表示しています。実務でのデータ処理に活用しやすい方法です。
関連する関数
gzopen— gz圧縮ファイルをオープンするgzread— gzファイルからデータを読み込むgzgets— gzファイルから1行読み込むfile— 通常のテキストファイルを配列で読み込む
まとめ
gzfile 関数はgz圧縮されたファイルを簡単に配列形式で読み込むために非常に便利です。圧縮ファイルの内容を行単位で扱いたい場合や、データの前処理をしたいときに役立ちます。エラーハンドリングを行いながら、安全に圧縮ファイルの読み込みを実装しましょう。
