gzfile

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

gzfile将整个 gz 文件读入数组

描述

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

此函数与 readgzfile() 相同,只是它以数组形式返回文件。

参数

filename

文件名。

use_include_path

如果要搜索 include_path 中的文件,可以将此可选参数设置为 1

返回值

一个包含文件的数组,每行一个单元,包括空行,并且带有换行符,或者在失败时为 false

示例

示例 #1 gzfile() 示例

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

参见

添加注释

用户贡献的注释 4 注释

5
nb_nonospamm_ at wtal dot de
18 年前
在 PHP4.4.1 中,我注意到 gzfile 每次只读取最多 8190 字节。我有一个 20K 的 SQL 查询,它被分成 3 部分 - 并且想知道为什么 SQL 服务器会抱怨。

使用 file() 命令读取未压缩文件按预期工作。
2
jani at php dot net
15 年前
此函数不安全。 (有意还是无意,这是个问题 :)
1
The Jedi
19 年前
一种更快的方法将 gziped 文件加载到字符串中
<?php
function gzfile_get_contents($filename, $use_include_path = 0)
{
//文件不存在
if( !@file_exists($filename) )
{ return
false; }

//读取并合并数组以产生单行字符串
$data = gzfile($filename, $use_include_path);
$data = implode($data);
return
$data;
}
?>
0
webmaster at ragnarokonline dot de
20 年前
这与 gzfile() 类似,但它以字符串而不是数组的形式返回文件,并且与 readgzfile 相比,它不会写入标准输出。

注意:与通常的文件函数不同,filesize 在这里不起作用,因为 gzread 的长度参数指的是未压缩的长度,而 filesize 返回的是压缩文件的长度。

<?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