PHP - 删除文件的最后一个字符

时间:2011-12-02 09:43:48

标签: php file-io trim

我有一个删除文件最后一个字符的PHP脚本。

$contents = file_get_contents($path);
rtrim($contents);
$contents = substr($contents, 0, -1);
$fh = fopen($path, 'w') or die("can't open file");
fwrite($fh, $contents);
fclose($fh);    

因此,它读取文件内容,剥离最后一个字符,然后截断文件并将字符串写回它。 一切正常。

我担心这个文件可能包含大量数据,然后file_get_contents()调用会将所有这些数据保存在内存中,这可能会最大化我的服务器内存。

是否有更有效的方法从文件中删除最后一个字符?

由于

1 个答案:

答案 0 :(得分:21)

试试这个

$fh = fopen($path, 'r+') or die("can't open file");

$stat = fstat($fh);
ftruncate($fh, $stat['size']-1);
fclose($fh); 

如需更多帮助,请参阅this