我想在 PHP 中切断一个大文件的开头。file_get_contents()
由于内存限制,无法使用。
从文件中删除第一个$n
字符的最佳方法是什么?
如果可以在不创建第二个文件的情况下做到这一点,我更喜欢那个解决方案。
更新文件被修改后,它将被其他脚本使用。
如果您没有足够的内存来缓冲整个文件,则无论您的解决方案如何,都需要创建两个文件(至少是暂时的)。
查看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 以与原始名称相同。