Алгоритм генерации БОЛЬШОГО фиктивного файла - PullRequest
3 голосов
/ 18 ноября 2011

Кто-нибудь написал быстрый алгоритм , который генерирует фиктивный файл LARGE в PHP, скажем, 500MB-2GB?

Ответы [ 2 ]

12 голосов
/ 18 ноября 2011

Если вас не волнует содержимое файла, вы можете просто найти в любой позиции и написать что-нибудь:

$f = fopen('largefile', 'wb');
fseek($f, 2 * 1000 * 1000 * 1000, SEEK_SET);
fwrite($f, 'after 2 GB');
fclose($f);

Если ОС и файловая система поддерживают разреженных файлов , файл будет очень большим, но на самом деле он не займет больше пары байтов дискового пространства.

0 голосов
/ 29 декабря 2015
 /* far too long to file creation , do not use especially not
$f = fopen('largefile', 'wb');
        fseek($f, 2 * 1000 * 1000 * 1000, SEEK_SET);
        fwrite($f, 'after 2 GB');
        fclose($f);*/

^^ Лучшая функция здесь - 0 с, чтобы создать файл 4 ГБ ^^

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;
}

проверить его ^^ Макс. В Php 32bit 4 294 967 296:

CreatFileDummy ('mydummyfile.iso', 4294967296);

Вы хотите написать, прочитать и создать файл Dummy, мой код здесь ^^:

https://github.com/Darksynx/php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...