CakeFest 2024: The Official CakePHP Conference

gztell

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

gztellgz ファイルポインタの読み込み/書き込み位置を返します

説明

gztell(resource $stream): int|false

与えられたファイルポインタが指す位置、つまり、 圧縮されていないファイルストリームにおけるオフセット値を返します。

パラメータ

stream

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

戻り値

ファイルポインタの位置、もしくはエラーが発生した場合 false

参考

  • gzopen() - gz ファイルを開く
  • gzseek() - gz ファイルポインタの位置を移動する
  • gzrewind() - gz ファイルポインタの示す位置を元に戻す

add a note

User Contributed Notes 1 note

up
0
Steve Ramage
17 years ago
ok so this function returns the gz file pointer as the uncompressed data byte length so if you are trying to put something in to specific size gzip files it won't work.

Example:

<?
//some_file.sql filesize = 2,048,000 bytes

$text_fp=fopen('some_file.sql','r');
$gz_fp=gzopen('some_file.sql.gz','wb9');
while(!feof($text_fp)){
gzwrite($gz_fp,fread($text_fp,655360));
}
fclose($text_fp);
echo "gztell = ".gztell($gz_fp)."<BR>\n";
gzclose($gz_fp);
echo "filesize = ".filesize('some_file.sql.gz')."<BR>\n";
?>

Output:

gztell = 2048000
filesize = 249264

I will report this as a bug but post a note here for now
To Top