我有一个删除文件最后一个字符的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()调用会将所有这些数据保存在内存中,这可能会最大化我的服务器内存。
是否有更有效的方法从文件中删除最后一个字符?
由于
答案 0 :(得分:21)
试试这个
$fh = fopen($path, 'r+') or die("can't open file");
$stat = fstat($fh);
ftruncate($fh, $stat['size']-1);
fclose($fh);
如需更多帮助,请参阅this