文字

fflush

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

fflush将缓冲内容输出到文件

说明

bool fflush ( resource $handle )

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

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

参数

handle

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

返回值

成功时返回 TRUE , 或者在失败时返回 FALSE

范例

Example #1 File write example using fflush()

<?php
$filename 
'bar.txt' ;

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

参见

  • clearstatcache() - 清除文件状态缓存
  • fwrite() - 写入文件(可安全用于二进制文件)

用户评论:

[#1] oryan at zareste dot com [2005-10-30 16:48:21]

Just a note that fflush takes care of the cache already, at least on my server.  Using clearstatcache before reading a previously written file also worked, but lagged the output time much more noticeably (by two or three seconds), probably due to excess cache erasing beyond files.

[#2] jzho327 at cse dot unsw dot edu dot au [2003-01-27 00:27:37]

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.

上一篇: 下一篇: