2013-12-23 17 views
2

我想在每个循环中截断文件并重新写入。所以,我使用下面的代码。FTRUNCATE在开始处留下空间

但是,这里发生了什么是我在每个循环的开始获得一些额外的空间。第一次没有空间被添加(也尝试了修剪功能)。

你能帮我吗?

$file = fopen("progress/".$_POST['fname'].".txt","w"); 
while($row=mysql_fetch_assoc($result)){ 
    updateDB($row['movieid'],trim($row['tempname'])); 
    ftruncate($file,0); 
    fwrite($file,round(100*$complete++/$tot)); 
} 
fclose($file); 

OUTPUT:(像这样)

11 
    20 
    30 
     40 

回答

5

你忘了移动文件指针回到起点。 ftruncate()不会为你做这个。写入到高级位置用NULL填充前面的字节。 使用fseek()

+0

啊..不知道..非常感谢。 – abdfahim

相关问题