• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • fflush()

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

    将缓冲内容输出到文件

    说明

    fflush(resource $handle): bool

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

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

    参数

    $handle

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

    返回值

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

    范例

    File write example usingfflush()

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

    参见

    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.
    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.

    上篇:feof()

    下篇:fgetc()