PHP 8.4.6 Released!

gzfile

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

gzfileRead entire gz-file into an array

Description

gzfile(string $filename, int $use_include_path = 0): array|false

This function is identical to readgzfile(), except that it returns the file in an array.

Parameters

filename

The file name.

use_include_path

You can set this optional parameter to 1, if you want to search for the file in the include_path too.

Return Values

An array containing the file, one line per cell, empty lines included, and with newlines still attached, or false on failure.

Examples

Example #1 gzfile() example

<?php
$lines
= gzfile('somefile.gz');
foreach (
$lines as $line) {
echo
$line;
}
?>

See Also

User Contributed Notes

nb_nonospamm_ at wtal dot de
19 years ago
In PHP4.4.1 I noticed that gzfile only reads up to 8190 bytes per line. I had a 20K SQL query that was cut into 3 parts - and wondered why the SQL server complained.

Reading an uncompressed file with the file() command works as expected.
jani at php dot net
16 years ago
This function is not binary safe. (intentionally, or not, that's the question :)
The Jedi
19 years ago
A quicker way to load a gziped file in a string :
<?php
function gzfile_get_contents($filename, $use_include_path = 0)
{
//File does not exist
if( !@file_exists($filename) )
{ return
false; }

//Read and imploding the array to produce a one line string
$data = gzfile($filename, $use_include_path);
$data = implode($data);
return
$data;
}
?>
webmaster at ragnarokonline dot de
21 years ago
This works similar to gzfile() but it returns the file in a string instead of an array and doesn't write it to stdout compared to readgzfile.

Note: unlike the usual file-functions filesize won't work here, since the length-parameter of gzread refers to the uncompressed length, while filesize returns the size of the compressed file.

<?php
function gzfile_get_contents($filename, $use_include_path = 0) {
$file = @gzopen($filename, 'rb', $use_include_path);
if (
$file) {
$data = '';
while (!
gzeof($file)) {
$data .= gzread($file, 1024);
}
gzclose($file);
}
return
$data;
}
?>
To Top