Cita:
Iniciado por SLD Gracias TuAdmin.
Código PHP:
echo str_repeat(chr(0), 1024 * $M);
retorna vacío, al igual que
Código PHP:
echo str_repeat(chr(NULL), 1024 * $M);
al igual que
Código PHP:
echo str_repeat(NULL, 1024 * $M);
estas en un error estimado
Código PHP:
str_repeat(NULL, 1024 * $M) != str_repeat(chr(0), 1024 * $M)
no son iguales, en la primera, no hace nada,
en la segunda, hace repetir el ASCII 0x00, en el archivo por lo consiguiente generas un archivo que tiene un PESO de bytes, por lo que primero te sugiero meter un video en el USB de digamos 100MB un mp4, y luego lo borras, luego ejecuta el script pero con datos exactos del peso libre del USB
recuerda que para ello tu USB debe ser de menor capacidad que la memoria RAM que tienes disponible ya que primero se genera en RAM el archivo.
como esta en el ejemplo
Código PHP:
<?php
$espacio_libre_en_MEGAS=(1024*7) + 500; //suponiendo q mi USB es de 7.5GB
$direccion_usb = 'x:/';
$tamanio_en_KILOS = $espacio_libre_en_MEGAS *1024 ;
$tamanio_en_bytes = $tamanio_en_KILOS *1024;/// sabemos que 1 SImbolo ASCII ocupa 1 byte
$symbolo_ascii = chr(0);
//como mi RAM es de 2GB generalmente tengo 512MB libres por lo que generare archivos de esos intervalos
$tamanio_chunks = (1024*1024) * 512 ;//Bytes * Kb * Mb
$numero_file = 1;
while($tamanio_en_bytes>0){
file_put_contents($direccion_usb . $numero_file,str_repeat(chr(0), $tamanio_chunks ) );
//incrementamos el numero de archivo
$numero_file++;
//reducimos el tamaño al que debe llegar
$tamanio_en_bytes = $tamanio_en_bytes- $tamanio_chunks;
}
en este ejemplo si tu PHP no tiene configurada el tema de la memoria RAM te dara un error de
FATAL ERROR Allowed memory size of
también debes considerar que parte de la memoria USB disponible va designado al INDICE de archivos, por ello siempre debes de considerar ese detalle