首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php创建给定大小的文件

php创建给定大小的文件
EN

Stack Overflow用户
提问于 2010-08-31 19:09:05
回答 4查看 7K关注 0票数 7

如何在PHP中创建具有给定大小(无论内容如何)的文件?

我必须创建一个大于1 1GB的文件。最大4-10左右

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-31 19:12:20

您可以使用fopenfseek

代码语言:javascript
运行
复制
define('SIZE',100); // size of the file to be created.
$fp = fopen('somefile.txt', 'w'); // open in write mode.
fseek($fp, SIZE-1,SEEK_CUR); // seek to SIZE-1
fwrite($fp,'a'); // write a dummy char at SIZE position
fclose($fp); // close the file.

执行时:

代码语言:javascript
运行
复制
$ php a.php

$ wc somefile.txt
  0   1 100 somefile.txt
$ 
票数 11
EN

Stack Overflow用户

发布于 2010-08-31 19:17:27

如果文件的内容无关紧要,那么只需填充它-但请确保您生成的变量不会太大而无法保存在内存中:

代码语言:javascript
运行
复制
<?php
$fh = fopen("somefile", 'w');
$size = 1024 * 1024 * 10; // 10mb
$chunk = 1024;
while ($size > 0) {
   fputs($fh, str_pad('', min($chunk,$size)));
   $size -= $chunk;
}
fclose($fh);

如果文件必须是其他东西可读的-那么你如何做取决于需要读取它的另一个东西。

结果表明,C.

票数 3
EN

Stack Overflow用户

发布于 2020-10-12 07:54:55

晚了,但它真的比其他答案更容易。

代码语言:javascript
运行
复制
$size = 100;
$fp = fopen('foo.dat',"w+");
fwrite($fp,str_repeat(' ',$size),$size);

w+将创建该文件,如果该文件已经存在,则将其覆盖。

对于非常大的文件,我通常会作弊:

代码语言:javascript
运行
复制
`truncate -s 10g foo.dat`;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3608383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档