Be aware that gzread's second parameter - length reffers to the file's uncompressed size, therefore using this code:
<?php
$file_name = "/usr/local/something.txt.gz";
if($file_handle = gzopen($file_name, "r"))
{
$contents = gzread($file_handle, filesize($file_name));
gzclose($file_name);
}
?>
will probably truncate the content of the file as filesize checks for the file's compressed size.
So either use the actual uncompressed size, if you know it, or use an aribtrary big enough length, as gzreading will stop at the end of the file anyway.
gzread
(PHP 4 <= 4.2.3)
gzread — バイナリ対応のgzファイル読み込み
説明
string gzread ( resource zp, int length )gzread() は、最大 length バイトのデータを zp が指す gz ファイルポインタ から読み込みます。(解凍された) length バイトのデータが読み込まれたか、 EOF に達したとき、読み込みは終了します。
パラメータ
- zp
gz ファイルポインタを指定します。これは有効なファイルポインタであり、 かつ、gzopen() によりオープンできたファイルを指している必要があります。
- length
読み込むバイト数を指定します。
返り値
読み込まれたデータ
例
例 2548. gzread() の例
<?php
// gz ファイルの内容を文字列に読み込む
$filename = "/usr/local/something.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>
参考
| gzwrite() |
| gzopen() |
| gzgets() |
| gzgetss() |
| gzfile() |
| gzpassthru() |
gzread
methatron at hotmail dot com
27-Sep-2006 04:33
27-Sep-2006 04:33