略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: gzfile

2024-12-22

gzfile

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

gzfileRead entire gz-file into an array

说明

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.

参数

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, empty lines included, and with newlines still attached, 或者在失败时返回 false.

范例

示例 #1 gzfile() example

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

参见

add a noteadd a note

User Contributed Notes 4 notes

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

官方地址:https://www.php.net/manual/en/function.gzfile.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3