给 PHP 初学者的一点提示
由 fflush() 写入的缓冲输出与由 ob_start() 函数启动的输出缓冲区无关。
(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
fflush — 将输出刷新到文件
示例 #1 使用 fflush() 的文件写入示例
<?php
$filename = 'bar.txt';
$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
?>
给 PHP 初学者的一点提示
由 fflush() 写入的缓冲输出与由 ob_start() 函数启动的输出缓冲区无关。
抱歉,我之前添加的关于 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,您很容易迷路。所以要小心。