Кто-либо знает об одном? Я должен протестировать некоторые сценарии загрузки/загрузки и нуждаться в некоторых действительно больших сгенерированных файлах. Я собирался интегрировать тестовую утилиту со своим сценарием отладки.
Для начала вы можете попробовать что-то вроде этого:
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).
Неужели вам действительно нужно столько разницы в размерах файлов, что нужен скрипт 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 определяет, сколько блоков вы хотите скопировать.
Неужели файл действительно должен быть случайным? Если это так, просто прочтите из / dev / urandom в системе Linux:
dd if = / dev / urandom of = yourfile bs = 4096 count = 1024
# для файла размером 4 МБ.
Если это действительно не нужно, чтобы быть случайным, просто найдите несколько файлов подходящего размера, которые у вас лежат, или (альтернативно) используйте tar
и создайте несколько архивов различных размеров.
Нет причин, по которым это нужно делать в сценарии PHP: обычных инструментов оболочки вполне достаточно для создания необходимых файлов.
Если вам нужны действительно случайные данные, вы можете захотеть чтобы попробовать это:
$data = '';
for ($byteSize-- >= 0) {
$data .= chr(rand(0,255));
}
Однако может потребоваться некоторое время, если вам нужны файлы больших размеров (как и любые случайные данные).
Почему бы не создать сценарий, который передает случайные данные? Сценарий может принимать параметры размера, типа файла и т. Д.
Таким образом вы можете моделировать множество сценариев, например, ограничение полосы пропускания, преждевременный конец файла и т. Д. И т. Д.