在 PHP 中,如何在不加载文件的情况下向文件添加一行?

发布于 2024-10-10 20:12:01 字数 96 浏览 6 评论 0原文

我有一些非常大的文本文件,重量超过 1GB,并且我经常需要使用 PHP 在文件的顶部/开头添加一行。

我知道如何做到这一点,但就内存使用而言,最有效的方法是什么?

I have a few very large text files that weigh over 1GB and I constantly need to add a line to the top / beginning of the file with PHP.

I know how to do this but what is the most efficient way in doing this in terms of memory usage?

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

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

发布评论

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

评论(2

痴情换悲伤 2024-10-17 20:12:01

您只能在底部有效地添加到文件。如果您需要添加到顶部,您别无选择,只能重写整个文件。

在不将整个文件读入缓冲区的情况下执行此操作的方法是将数据分块移回,直到顶部有可用空间。

You can only add to a file efficiently at the bottom. If you need to add to the top you have no other option but to rewrite the entire file.

The way to do this without reading the entire file into a buffer is to move data back in chunks until you have free space at the top.

杀お生予夺 2024-10-17 20:12:01

另一种方法(如果您使用的是 *nix 平台)是使用 PHP 对 cat 进行系统调用并进行文件重定向,这在内存使用和性能方面比尝试使用 PHP 操作文件头要高效得多。

A different approach (if you are using a *nix platform) would be to use have PHP make system calls to cat and file redirection which would be far more efficient in terms of memory usage and performance than trying to manipulate the file header w/ PHP.

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