1

我想在 PHP 中切断一个大文件的开头。file_get_contents()由于内存限制,无法使用。

从文件中删除第一个$n字符的最佳方法是什么?

如果可以在不创建第二个文件的情况下做到这一点,我更喜欢那个解决方案。

更新文件被修改后,它将被其他脚本使用。

4

1 回答 1

2

如果您没有足够的内存来缓冲整个文件,则无论您的解决方案如何,都需要创建两个文件(至少是暂时的)。

查看fseek(),它允许您转到文件中的特定字节位置。

// Open the file
$filename = 'somefile.dat';
$file = fopen($filename, 'r');

// Skip the first 1 KB
fseek($file, 1024);

// Your processing goes here...

// Close the file
fclose($file);

在您的情况下,您可以同时打开原始文件进行读取和临时文件进行写入。寻找原始文件。循环遍历原始文件,读取一小块并将其写入 temp。然后重命名 temp 以与原始名称相同。

于 2013-02-03T14:51:35.403 回答