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

发布于 2024-12-19 07:30:34 字数 420 浏览 1 评论 0原文

我有一个小的 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() 调用会将所有这些数据保存在内存中,这可能会耗尽我的服务器内存。

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

谢谢

I have a little php script that removes the last character of a file.

$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);    

So it reads in the file contents, strips off the last character and then truncates the file and writes the string back to it.
This all works fine.

My worry is that this file could contain a lot of data and the file_get_contents() call would then hold all this data in memory which could potentially max out my servers memory.

Is there a more efficient way to strip the last character from a file?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浪漫人生路 2024-12-26 07:30:34

试试这个

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

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

如需更多帮助,请参阅

Try this

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

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

For more help see this

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文