文件的filesize()未显示实际文件大小

时间:2019-02-26 02:18:51

标签: php

我有以下代码:

<?php
    for ($i = 0; $i < 6; $i++) {
        $file = fopen( 'dummy.txt', 'a' );
        echo filesize('dummy.txt') . "<br>";
        fwrite($file, "b\n");
        echo filesize('dummy.txt') . "<br>";
        fclose($file);
    }
?>

它产生:

0
0
0
0
0
0
0
0
0
0
0
0

但是,当我打开dummy.txt文件时,表明我已经成功写了想要的字母。我不知道filesize()如何显示大小为0的文件,因为我每次迭代都清楚地写入文本文件然后关闭该文件。有人可以启发我吗?

1 个答案:

答案 0 :(得分:2)

您正在查看打开的文件,需要关闭文件并通过在调用filesize()之前插入对clearstatcache()的调用来清除缓存

文件大小手册页:http://php.net/manual/en/function.filesize.php

代码应显示为:

<?php
    for ($i = 0; $i < 6; $i++) {
        $file = fopen( 'dummy.txt', 'a' );
        fwrite($file, "b\n");
        fclose($file);
        clearstatcache();
        echo filesize('dummy.txt') . "<br>";
    }
?>