gzopen() 之后的 gzXXX() 与 fXXX() 函数
gzXXX() versus fXXX() functions after gzopen()
我有像这样打开和处理 gzip 文件的应用程序:
$fh = gzopen($fn, "r");
if ($fh) {
while ($line = fgets($fh)) {
...
}
}
它工作正常,使用 fgets()
和 gzip 文件句柄。今天在回答another question的时候发现所有的文件读写函数也有gz
版本,所以可以写成
$fh = gzopen($fn, "r");
if ($fh) {
while ($line = gzgets($fh)) {
...
}
}
此外,我刚刚尝试了以下方法并且有效:
$fh = fopen(".bashrc", "r");
$line = gzgets($fh);
echo $line;
所以 gzXXX()
和 fXXX()
读写函数之间真的有什么显着的区别吗,或者它们只是同义词,区别取决于文件的打开方式(以及进一步混淆,gzopen()
也将打开非 gzip 文件,然后不解压读取。
Based on the source, gzopen()
uses php_stream_gzopen()
到 return 包装流,这就是 f...
系列函数在资源上运行良好的原因。 (这类似于流包装器允许您使用 http://
等打开类文件对象的方式。)
至于为什么可以fopen()
然后gzgets()
,your hunch is correct; gzclose
、gzeof
、gzgetc
、gzgets
、gzpassthru
、gzputs
、gzread
、gzrewind
、[= 24=、gztell
和 gzwrite
都是相同 f...
函数的别名。
我有像这样打开和处理 gzip 文件的应用程序:
$fh = gzopen($fn, "r");
if ($fh) {
while ($line = fgets($fh)) {
...
}
}
它工作正常,使用 fgets()
和 gzip 文件句柄。今天在回答another question的时候发现所有的文件读写函数也有gz
版本,所以可以写成
$fh = gzopen($fn, "r");
if ($fh) {
while ($line = gzgets($fh)) {
...
}
}
此外,我刚刚尝试了以下方法并且有效:
$fh = fopen(".bashrc", "r");
$line = gzgets($fh);
echo $line;
所以 gzXXX()
和 fXXX()
读写函数之间真的有什么显着的区别吗,或者它们只是同义词,区别取决于文件的打开方式(以及进一步混淆,gzopen()
也将打开非 gzip 文件,然后不解压读取。
Based on the source, gzopen()
uses php_stream_gzopen()
到 return 包装流,这就是 f...
系列函数在资源上运行良好的原因。 (这类似于流包装器允许您使用 http://
等打开类文件对象的方式。)
至于为什么可以fopen()
然后gzgets()
,your hunch is correct; gzclose
、gzeof
、gzgetc
、gzgets
、gzpassthru
、gzputs
、gzread
、gzrewind
、[= 24=、gztell
和 gzwrite
都是相同 f...
函数的别名。