【发布时间】:2016-05-09 15:30:06
【问题描述】:
手册说它将输出刷新到文件中。另外,他们举了一个例子。
$filename = 'bar.txt';
$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
我试图理解它的必要性。我所做的如下:
- 我创建了一个 bar.txt 文件
- 我运行了脚本
- 我打开 bar.txt 并在其中看到“Foo”,然后我再次将文件设为空。
- 然后...我从脚本中删除了
fflush($file);并再次运行它。 - 结果完全一样。我又一次把文件清空了。
- 之后,我将
frwite()行更改为fwrite($file, 'Foo'); die(); - 再次...同样的结果...一个包含“Foo”的文件。
现在,我看不出使用fflush() 的意义。
在这个例子中我看不出 fflush 的必要性。您能否提供一个真正需要fflush() 的示例。
【问题讨论】:
-
如果您的系统在后台进行任何缓存,这可以确保数据实际刷新到磁盘。因为您的代码可以在任何可以运行 PHP 的系统上运行,所以只需使用它即可。
-
@RiggsFolly 我可以知道如何关闭缓存吗?
-
你可以自己找出来。但关键是是否会在每个可能使用您正在编写的这段代码的系统上关闭缓冲/缓存??
标签: php filesystems