略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: fflush

2024-12-20

fflush

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

fflush将缓冲内容输出到文件

说明

fflush(resource $handle): bool

本函数强制将所有缓冲的输出写入 handle 文件句柄所指向的资源。 成功时返回 true, 或者在失败时返回 false

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

参数

handle

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

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 File write example using fflush()

<?php
$filename 
'bar.txt';

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

参见

add a noteadd a note

User Contributed Notes 2 notes

up
10
michaelsy01[NXSPAM] at informantum dot de
3 years ago
A hint for PHP beginners like me:
The buffered output which is write by fflush() has nothing to do with the output buffer which is initiated by the ob_start() function.
up
-15
jzho327 at cse dot unsw dot edu dot au
19 years ago
Sorry, the note I previously added regarding fflush() has a bug!

when you read file by calling
$fp = fopen("myfile", "a+");

and you wish to read the content, you have to call
rewind($fp) before you attemp to read it. (Silly me) Or else if you tried something like
$fp = fopen("myfile", "a+");
$content = fread($fp);

// show that content is in fact null
if ($content == NULL)
print "but it must be first put to rewind<br>\n";

will result

but it must be first put to rewind.
[new line]

in fact, if you are not careful (like me), and you opened it with
$fp = fopen("myfile", "r+");
$content = fread($fp);
..
// do something with content
..
then you tried to again
$content = fread($fp);
without rewind, you'd get NULL again. This sounds trivial, but if you work with several file resources, with freads and fopens everywhere, you can get easily lost. So becareful.

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

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