php 中的 fopen 和 'a+' 模式?
fopen and 'a+' mode in php?
考虑以下代码(文件 test.txt
不存在):
$fp = fopen('test.txt', 'a+');
echo ftell($fp); // 0
fwrite($fp, "abc\n");
fclose($fp);
我运行一次代码-echo ftell($fp); // 0
,我再次运行代码-echo ftell($fp); // 0
仍然returns 0。文件现在包含abc\nabc\n,所以我认为它应该 return 3,因为文件已经包含 abc\n第二 运行.
如果我要 运行 代码一次又一次,ftell
仍然是 returns 0,这是为什么呢?我想 a+
应该把指针放在文件的末尾?我错过了什么?
php.net 的评论已经说明了问题 - 所以这是已知的 bug/behaviour。
考虑以下代码(文件 test.txt
不存在):
$fp = fopen('test.txt', 'a+');
echo ftell($fp); // 0
fwrite($fp, "abc\n");
fclose($fp);
我运行一次代码-echo ftell($fp); // 0
,我再次运行代码-echo ftell($fp); // 0
仍然returns 0。文件现在包含abc\nabc\n,所以我认为它应该 return 3,因为文件已经包含 abc\n第二 运行.
如果我要 运行 代码一次又一次,ftell
仍然是 returns 0,这是为什么呢?我想 a+
应该把指针放在文件的末尾?我错过了什么?
php.net 的评论已经说明了问题 - 所以这是已知的 bug/behaviour。