fflush

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

fflush将输出刷新到文件

描述

fflush(resource $stream): bool

此函数强制将所有缓冲的输出写入由文件 stream 指向的资源。

参数

stream

文件指针必须有效,并且必须指向由 fopen()fsockopen() 成功打开的文件(并且尚未被 fclose() 关闭)。

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 使用 fflush() 的文件写入示例

<?php
$filename
= 'bar.txt';

$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
?>

参见

添加注释

用户贡献的注释 2 个注释

18
michaelsy01[NXSPAM] at informantum dot de
5 年前
给 PHP 初学者的一点提示
由 fflush() 写入的缓冲输出与由 ob_start() 函数启动的输出缓冲区无关。
-19
jzho327 at cse dot unsw dot edu dot au
21 年前
抱歉,我之前添加的关于 fflush() 的注释有错误!

当您通过以下方式读取文件时:
$fp = fopen("myfile", "a+");

并且您希望读取内容,您必须在尝试读取之前调用:
rewind($fp) (真是笨拙的我)。否则,如果您尝试以下操作:
$fp = fopen("myfile", "a+");
$content = fread($fp);

// 显示内容实际上为空
if ($content == NULL)
print "但它必须首先被置为 rewind<br>\n";

将导致

但它必须首先被置为 rewind。
[换行]

实际上,如果您不小心(就像我一样),并且您使用以下方式打开了它:
$fp = fopen("myfile", "r+");
$content = fread($fp);
..
// 对内容进行某些操作
..
然后您尝试再次
$content = fread($fp);
如果没有 rewind,您将再次获得 NULL。这听起来微不足道,但如果您处理多个文件资源,到处都是 freads 和 fopens,您很容易迷路。所以要小心。
To Top