0

我正在使用 php 中的非常大的文本文件(最大 10gb),我怎样才能在文件中进行小的更改(如删除或添加一行)而不必每次都读取整个文件并将其写入磁盘?

我的意思是,我想直接更改文件的一小部分,而不必处理整个文件......

4

4 回答 4

2

您可以使用fopen()它将为您的文件创建资源。然后将资源操作fseek()到您想要读取/写入的位置,然后fgets()操作fputs()您想要对文件的该部分执行的操作。

这仅适用于更改和附加数据。如果要从文件中删除数据,则必须从要删除的点重写整个文件。

于 2012-12-26T21:45:18.470 回答
1

如果您需要更改文件的长度,则无法避免将文件的部分从更改位置重写到末尾。

于 2012-12-26T21:47:50.690 回答
1

如果您正在处理文本文件,则不能替换文件中间的“行”,因为它是字符流。除非您进行一对一的字符替换,否则您必须重写整个文件。

但是,您可能可以为该任务使用更好的工具,例如 Perl 或一些 Unix 命令行实用程序。您实际上想用这些大文本文件做什么?

于 2012-12-26T21:48:06.560 回答
-4

这个问题有点模糊。通常在 php 中,您只需突出显示要删除的部分并按退格键,然后您可以根据需要对其进行编辑。通常您可以按 F3 或 CTRL + F 来搜索需要编辑的位。还有,10g?我很好奇这甚至做了什么。

于 2012-12-26T21:41:35.830 回答