Сценарий PHP для генерации файла со случайными данными имени и размера?

Кто-либо знает об одном? Я должен протестировать некоторые сценарии загрузки/загрузки и нуждаться в некоторых действительно больших сгенерированных файлах. Я собирался интегрировать тестовую утилиту со своим сценарием отладки.

10
задан stormist 12 April 2010 в 16:23
поделиться

5 ответов

Для начала вы можете попробовать что-то вроде этого:

function generate_file($file_name, $size_in_bytes)
{
   $data = str_repeat(rand(0,9), $size_in_bytes);
   file_put_contents($file_name, $data); //writes $data in a file   
}

Это создает файл, заполненный случайной цифрой (0-9).

8
ответ дан 3 December 2019 в 17:19
поделиться

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

Чтобы создать файл в Windows;

fsutil file createnew d:\filepath\filename.txt 1048576

в Linux;

dd if=/dev/zero of=filepath/filename.txt bs=10000000 count=1

если - это файл источник (в данном случае ничего), из - выходной файл, bs - конечный размер файла, count определяет, сколько блоков вы хотите скопировать.

6
ответ дан 3 December 2019 в 17:19
поделиться

Неужели файл действительно должен быть случайным? Если это так, просто прочтите из / dev / urandom в системе Linux:

dd if = / dev / urandom of = yourfile bs = 4096 count = 1024 # для файла размером 4 МБ.

Если это действительно не нужно, чтобы быть случайным, просто найдите несколько файлов подходящего размера, которые у вас лежат, или (альтернативно) используйте tar и создайте несколько архивов различных размеров.

Нет причин, по которым это нужно делать в сценарии PHP: обычных инструментов оболочки вполне достаточно для создания необходимых файлов.

2
ответ дан 3 December 2019 в 17:19
поделиться

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

$data = '';
for ($byteSize-- >= 0) {
    $data .= chr(rand(0,255));
}

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

1
ответ дан 3 December 2019 в 17:19
поделиться

Почему бы не создать сценарий, который передает случайные данные? Сценарий может принимать параметры размера, типа файла и т. Д.

Таким образом вы можете моделировать множество сценариев, например, ограничение полосы пропускания, преждевременный конец файла и т. Д. И т. Д.

1
ответ дан 3 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: