Сгенерить файл определенного размера

Тема в разделе "PHP", создана пользователем caspersky, 7 сен 2011.

Модераторы: latteo
  1. caspersky

    caspersky Создатель

    Регистр.:
    7 июл 2008
    Сообщения:
    18
    Симпатии:
    0
    ТЗ - указываю скрипту размер, на выходе файл забитый случайными данными?
     
  2. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    PHP:
    <?php
    $a
    =1;
    $file="test.txt";//путь к файлу
    $r=1000;//требуемый размер файла,если принимать из формы то например $_POST['size']
    for($i=1$i<=$r$i++){
    $s.=$a//забиваем файл единицами
    }
    file_put_contents($file$s);//перезаписываем файл
    ?>
    или так
    PHP:
    <?php
    $a
    =1;
    $file="test.txt";//путь к файлу
    $r=1000;//требуемый размер файла,если принимать из формы то например $_POST['size']
    $s=array_fill(0,$r$a); //забиваем файл единицами
    file_put_contents($file$s);//перезаписываем файл
    ?>
     
  3. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    если размер небольшой то лучше использовать
    http://docs.php.net/manual/en/function.str-repeat.php
    если большой- больше чем выделено для пхп- то конструкцию
    PHP:
    for(){
    fwrite($fpstr_repeat())
    }
    + это забъёт файл только повторяющимися значениями. нужны именно случайный набор?
     
  4. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    PHP:
    $size 1000000//миллион байт
    $f fopen('file.txt''w');

    //100 байт случайных данных
    for($i=0;$i<100;$i++){
        
    fseek($frand(1$size-1), SEEK_SET);
        
    fwrite($frand(19));
    }

    //файл подгоняем под нужный размер
    fseek($f$size-1SEEK_SET);
    fwrite($f'1');

    fclose($f);
     
  5. steel_HILL

    steel_HILL Постоялец

    Регистр.:
    15 апр 2010
    Сообщения:
    53
    Симпатии:
    14
    Я когда то тоже такое писал для запуска на хостинге :)
    Решение "черезжопное", но зато проц грузит слабо -

     
  6. baddan

    baddan

    Регистр.:
    14 мар 2008
    Сообщения:
    354
    Симпатии:
    42
    немного подправлю то что предложил дино.
    PHP:
    <?php
    $file
    ="test.txt";//путь к файлу
    $size=1000//требуемый размер файла
    $s='';
    for(
    $i=1$i<=$size$i++){
    $s.=chr(rand(0,255)); //забиваем файл единицами
    }
    file_put_contents($file$s);//перезаписываем файл
    ?>