gzgetss

関数の概要

gzgetss は、圧縮された gz ファイルから1行ずつテキストを読み込み、そのテキストからHTMLやPHPのタグを除去するためのPHP関数です。これは、gzファイルを扱う際に不要なタグを除去して安全な文字列を取得したい場合に便利です。

パラメータの説明

  • resource $zp – ファイルを指すgzファイルポインタリソース。gzopenなどでオープンされたリソースを指定します。
  • int $length(任意) – 1行で読み込む最大バイト数。指定しない場合はデフォルト値が使われます。
  • string|null $allowable_tags(任意) – 許可するHTMLタグのリスト。例えば、'<b><i>'のようにタグ名を記述します。指定しない場合はすべてのタグが除去されます。

戻り値

指定したgzファイルリソースから1行分のテキストを読み込み、指定したタグを除去した文字列を返します。ファイルの終端に達した場合は false を返します。

使用例

基本的な使い方

<?php
$gz = gzopen('sample.gz', 'r');
while (($line = gzgetss($gz)) !== false) {
    echo $line . "<br>";
}
gzclose($gz);
?>

圧縮ファイル sample.gz を開き、1行ずつタグを除去して読み込み表示します。タグはすべて除去されます。

読み込むバイト数を指定する例

<?php
$gz = gzopen('sample.gz', 'r');
while (($line = gzgetss($gz, 100)) !== false) {
    echo $line . "<br>";
}
gzclose($gz);
?>

1行の読み込み最大バイト数を100バイトに制限して読み込みます。長い行がある場合に便利です。

許可するタグを指定する例

<?php
$gz = gzopen('sample.gz', 'r');
while (($line = gzgetss($gz, 1024, '<b><i>')) !== false) {
    echo $line . "<br>";
}
gzclose($gz);
?>

読み込み時に<b>と<i>タグだけを許可し、それ以外のタグは除去します。必要なタグのみ残したい場合に便利です。

関連する関数

  • gzopen – gzファイルを開く
  • gzgets – gzファイルから1行を読み込む(タグ除去しない)
  • strip_tags – 文字列からHTML・PHPタグを除去する
  • gzread – gzファイルからバイト数指定で読み込む

まとめ

gzgetssは、圧縮されたgzファイルから安全に1行ずつテキストを読み込みたいときに便利な関数です。タグを除去しながら読み込めるため、HTMLやPHPコードの不正な影響を抑えたい場合に特に役立ちます。読み込みバイト数や許可タグを設定できるので、柔軟な用途に対応可能です。実務でgzファイルの中身を解析・表示する際にぜひ活用してください。