2011-11-18 3 views
4

Quelqu'un at-il écrit un algorithme rapide qui génère un fichier fictif LARGE en PHP, disons-500MB 2 Go?algorithme pour générer un gros fichier Dummy

+5

'dd if =/dev/zero of = bs = 1024 count = 500000' –

+0

factice ajouter juste un appel de commande système et voila, vous avez un script php qui génère un grand fichier fictif ;-) – Flukey

+0

@KerrekSB ce n'est pas "rapide" Algorithme: P mieux 'dd if =/dev/zéro de = factice bs = 1 compte = 1 seek = 500000' – canni

Répondre

11

Si vous ne se soucient pas le contenu du fichier du tout, vous pouvez juste seek à toute position et d'écrire quelque chose:

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

Si le support du système d'exploitation et le système de fichiers sparse files, le fichier sera vraiment grand, mais ne prend pas réellement plus de quelques octets d'espace disque.

+0

Était en train d'écrire ceci :) – canni

+2

+1 C'est vraiment sympa – NikiC

+0

Fonction Dope, mais techniquement, ce n'est pas 2GB. – Mob

1
/* 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);*/ 

^^ La meilleure caractéristique est ici avec 0s pour créer un fichier de 4 Go ^^

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

Test it ^^ Max en Php 32bit 4 294 967 296:

CreatFileDummy (» mydummyfile.iso ', 4294967296);

Vous voulez écrire, lire et fichier Dummy Creat mon code est ici ^^:

https://github.com/Darksynx/php

Questions connexes