在PHP中切断大文件的开头

时间:2013-02-03 14:47:08

标签: php file-io

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

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

如果可以在不创建第二个文件的情况下执行此操作,我宁愿选择该解决方案。

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

1 个答案:

答案 0 :(得分: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重命名为与原始名称相同。

相关问题