我有以下代码:
<?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
的文件,因为我每次迭代都清楚地写入文本文件然后关闭该文件。有人可以启发我吗?
答案 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>";
}
?>