gzfile

(PHP 3, PHP 4, PHP 5)

gzfile -- Read entire gz-file into an array

说明

array gzfile ( string filename [, int use_include_path] )

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

参数

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.

返回值

An array containing the file, one line per cell.

范例

例子 1. gzfile() example

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


add a note add a note User Contributed Notes
nb_nonospamm_ at wtal dot de
27-Nov-2005 08:12
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.
The Jedi
28-Jun-2005 09:44
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
14-Jan-2004 03:58
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;
}
?>