Verilen ad ve boyutu rasgele veri ile bir dosya oluşturmak için PHP komut dosyası?

5 Cevap php

Herkes birini biliyor mu? Bazı yükleme / indirme komut test etmek gerekir ve üretilen bazı gerçekten büyük dosyaları gerekir. Ben hata ayıklama komut ile test programı entegre gidiyordu.

5 Cevap

Eğer böyle bir şey deneyebilirsiniz başlatmak için:

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   
}

Bu rastgele bir rakam (0-9) ile dolu bir dosya oluşturur.

Eğer gerçekten bir PHP komut dosyası gerekir dosya boyutu o kadar çok varyasyon ihtiyacınız var mı? Ben sadece komut satırı üzerinden değişen boyutlarda test dosyaları oluşturmak ve benim birim testleri bunları kullanmak istiyorum. Dosya boyutu kendisi bir hata neden olabilir sürece, burada aşırı mühendislik konum gibi görünüyor ...

Windows'da bir dosya oluşturmak için;

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

Linux;

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

if (bu durumda hiçbir şey) dosya kaynak, of Çıktı dosyası, bs son dosya boyutu olduğunu, count tanımlar kopyalamak istediğiniz kaç blok.

Neden rastgele verileri akarsu bir komut dosyası yok? Komut dosyası boyutu, türü vb parametreler alabilir

Birçok senaryolar simüle Bu şekilde, örneğin bant genişliği daraltma için, erken dosya vs vs sona

Dosya gerçekten rastgele olması gerekiyor mu? Eğer öyleyse, sadece bir Linux sistemi üzerinde / dev / urandom okunur:

Bir 4MB dosya için dd if=/dev/urandom of=yourfile bs=4096 count=1024 #.

Gerçekten rastgele olması gerekmez, sadece size uygun boyutta ortalıkta bazı dosyaları bulmak, ya da (alternatif) tar kullanımı ve çeşitli boyutlarda bazı tarballları yapmak.

Bu bir PHP komut dosyası yapılması gereken hiçbir neden yok: Sıradan kabuk araçları ihtiyaç dosyaları oluşturmak için mükemmel yeterlidir.

Eğer gerçekten rastgele veri istiyorsanız, bu denemek isteyebilirsiniz:

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

Eğer (herhangi bir rasgele veri ile olduğu gibi) büyük dosya boyutları istiyorsanız, ancak, bir süre alabilir.