PHP 8.5.2 Released!

gzfile

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

gzfileRead entire gz-file into an array

Description

gzfile(string $filename, bool $use_include_path = false): 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
If set to true, files in the include_path are searched for too.

Return Values

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

Changelog

Version Description
8.5.0 use_include_path is now of type bool. Previously, it was of type int.

Examples

Example #1 gzfile() example

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

See Also

add a note

User Contributed Notes 4 notes

up
3
The Jedi
20 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;
}
?>
up
2
nb_nonospamm_ at wtal dot de
20 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.
up
1
jani at php dot net
17 years ago
This function is not binary safe. (intentionally, or not, that's the question :)
up
0
webmaster at ragnarokonline dot de
22 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