php 创建文件时不能直接预设大小,但可通过 fseek() + fwrite() 跳转到目标位置末尾前一字节并写入“ ”来快速创建指定大小的稀疏文件,兼容性好且省内存。

PHP 创建文件时能否预设大小
不能直接“预设”文件大小,但可以主动写入指定长度的内容(比如空字节)来让文件达到目标尺寸。PHP 没有类似 ftruncate() 初始化时就分配空间的原子操作,fopen() 打开新文件默认是空的,后续必须显式填充。
用 fseek() + fwrite() 快速占位到指定大小
这是最常用、兼容性最好的方式:先打开文件,跳转到目标位置末尾前一个字节,写入单个字节,系统会自动补零填充中间空白。注意必须用 "c+" 或 "r+" 模式,且文件需可写。
-
fseek($fp, $size - 1):跳到索引$size - 1的位置(从 0 开始) -
fwrite($fp, " "):写入一个字节,触发文件扩展并填充前面为