CakeFest 2024: The Official CakePHP Conference

gzgets

(PHP 4, PHP 5, PHP 7, PHP 8)

gzgetsファイルポインタから 1 行を得る

説明

gzgets(resource $stream, ?int $length = null): string|false

与えられたファイルポインタから最大 length - 1 バイトの文字を読み込み、 これを含む (非圧縮の) 文字列を返します。 length - 1 バイトを読み込むか、改行または EOF になった場合、 (どれかが最初にきた時点で) 読み込みを終了します。

パラメータ

stream

gz ファイルポインタを指定します。 これは有効なファイルポインタであり、かつ、 gzopen() によりオープンできたファイルを指している必要があります。

length

取得するデータ長を指定します。

戻り値

非圧縮の文字列、もしくはエラー時に false

変更履歴

バージョン 説明
8.0.0 length は、nullable になりました。 これより前のバージョンでは、 デフォルトは 1024 でした。

例1 gzgets() の例

<?php
$handle
= gzopen('somefile.gz', 'r');
while (!
gzeof($handle)) {
$buffer = gzgets($handle, 4096);
echo
$buffer;
}
gzclose($handle);
?>

参考

  • gzopen() - gz ファイルを開く
  • gzgetc() - gz ファイルへのポインタから文字を得る
  • gzwrite() - バイナリセーフな gz ファイル書き込み

add a note

User Contributed Notes 3 notes

up
1
prismngp1 at yahoo dot com
21 years ago
<?
// this is simple code by VIJAY to unzip .gz file
$file = "/absolute/path/to/your/file" ;
$fp = fopen("$file", "w") ;
// file to be unzipped on your server
$filename = "filename.gz" ;
$zp = gzopen($filename, "r");

if ($zp)
{
while (!gzeof($zp))
{
$buff1 = gzgets ($zp, 4096) ;
fputs($fp, $buff1) ;
}
}
gzclose($zp) ;
fclose($fp) ;
?>
up
0
divinity76 at gmail dot com
4 years ago
PS when it encounters and breaks on a newline byte ("\n"), the newline byte itself is not included in the returned string.
up
0
Anonymous
18 years ago
For the above example by VIJAY, using gzgetc would be better, as I've encountered binary/text file incompatibilities (at least with PHP 4.0.4).
To Top