6
A
回答
7
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.
在执行时:
$ php a.php
$ wc somefile.txt
0 1 100 somefile.txt
$
1
如果该文件的内容是不相关的然后就垫了 - 但不要做确保你不会产生太大的变量来保存内存:
<?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.
0
看看我在底部
代码^^的最大特点是在这里与0创建一个4GB的文件^^
FUNCTION CreatFileDummy($file_name,$size) {
// 32bits 4 294 967 296 bytes MAX Size
$f = fopen($file_name, 'wb');
if($size >= 1000000000) {
$z = ($size/1000000000);
if (is_float($z)) {
$z = round($z,0);
fseek($f, ($size - ($z * 1000000000) -1), SEEK_END);
fwrite($f, "\0");
}
while(--$z > -1) {
fseek($f, 999999999, SEEK_END);
fwrite($f, "\0");
}
}
else {
fseek($f, $size - 1, SEEK_END);
fwrite($f, "\0");
}
fclose($f);
Return true;
}
测试^^ Max在PHP的32位4 294 967 296:
CreatFileDummy('mydummyfile.iso',4294967296);
你想要写,读和科瑞文件虚拟我的代码在这里^^:
'FSEEK()'不会改变文件大小。 – jmz 2010-08-31 11:16:50
现在你已经编辑了代码来执行'fwrite()',它可以工作,但你的原始答案只提到'fseek()'。将来,您应该提供完整的代码,如编辑后的版本,或者更详细地解释。问这个问题的人不知道如何去做,这就是他问的原因。 – jmz 2010-08-31 11:35:56
当我尝试在win 2003服务器系统上创建一个大于1GB的文件(我拥有所有权利,并且它是NTFS)时,此操作失败 – Mike 2010-08-31 13:13:13