generate_file () из @ Marco Demaio вызвало это ниже при создании файла 4 ГБ.
Предупреждение: str_repeat (): результат слишком велик, максимально 2147483647
в /home/xxx/test_suite/handler.php в строке 38
Я нашел ниже функцию от php.net , и она работает как шарм.
Я проверил это до
17,6 ТБ (см. Обновление ниже)
менее чем за 3 секунды.
function CreatFileDummy($file_name,$size = 90294967296 ) {
// 32bits 4 294 967 296 bytes MAX Size
$f = fopen('dummy/'.$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;
}
Обновление:
Я пытался набрать 120 ТБ, 1200 ТБ и более, но размер файла был ограничен 17,6 ТБ. После некоторого поиска я обнаружил, что это max_volume_size
для ReiserFS файловой системы, которая была на моем сервере.
Может быть, PHP может обрабатывать 1200 ТБ также всего за несколько секунд. :)