Come convertire i bytes in KB o MB e come calcolare lo spazio libero e quello totale con PHP
Scritto da Michelangelo il 28/07/2009 alle 11:29:45.
Come avete potuto leggere dal riassunto del post o come potete ben capire dal titolo in questo articolo tratteremo di dimensioni e di spazio, in particolar modo vedremo come convertire una dimensione espressa in bytes in kilobytes e/o megabytes sfruttando una funzione di PHP di mia invenzione...
Come molti di voi ben sapranno PHP ha diverse funzioni per calcolare lo spazio (dimensioni) di un file o di una cartella, funzioni come
filesize(),
disk_free_space(),
disk_total_space(), ecc
Come si può leggere dal manuale queste funzioni restituiscono un valore espresso in bytes e non c'è modo (tramite la stessa funzione) di mostrarlo in KB o MB...ma se noi volessimo a tutti i costi il valore espresso in KB o MB?
Ecco, come annunciato prima utilizziamo una piccola funzione di mia invenzione che ci restituisce il valore in KB o MB a seconda della dimensione del file...in poche parole se il file è piccolo ci sarà restituito un valore in KB, mentre se il file è un po' più grandicello visualizzeremo il risultato in MB. Ecco di seguito la funzione che utilizzeremo:
<?php
// Funzione che restituisce il valore in KB o MB
function Peso($size){
if($size < 1000000){
$size = ceil($size/1024). " KB";
}else{
$size = round(($size/1024)/1024,1)." MB";
}
return $size;
} ?>
Affinchè questa funzione funga correttamente sarà sufficiente utilizzare la funzione con al suo interno un valore in bytes come ad esempio il seguente:
<?php
// Funzione che restituisce il valore in KB o MB
function Peso($size){
if($size < 1000000){
$size = ceil($size/1024). " KB";
}else{
$size = round(($size/1024)/1024,1)." MB";
}
return $size;
}
echo Peso("1024"); // Stamperà a video "1 KB" in quanto 1024 bytes = 1 KB, 1024 KB = 1 MB, 1024 MB = 1 GB, ecc
?>
Se adesso vogliamo sfruttare questa funzione per calcolare lo spazio disponibile e quello totale di una cartella o del nostro sito internet bisognerà utilizzare
disk_free_space() e
disk_total_space():
<?php
// Ricavo lo Spazio libero e quello totale
$percorso = "/"; // Path Assoluta della cartella da "analizzare"
$fs = disk_free_space($percorso);
$ts = disk_total_space($percorso);
?>
Ricavate le dimensioni mostriamole a video filtrate dalla nostra funzione:
<?php
// Mostro lo spazio totale e quello disponibile filtrandolo con la funzione Peso()
echo "Spazio Disponibile: ".Peso($fs);
echo "<br />";
echo "Spazio Totale: ".$Peso($ts);
?>
Adesso, mettendo tutto insieme, lo script finale sarà:
<?php
// Funzione che restituisce il valore in KB o MB
function Peso($size){
if($size < 1000000){
$size = ceil($size/1024). " KB";
}else{
$size = round(($size/1024)/1024,1)." MB";
}
return $size;
}
// Ricavo lo Spazio libero e quello totale
$percorso = "/"; // Path Assoluta della cartella da "analizzare"
$fs = disk_free_space($percorso);
$ts = disk_total_space($percorso);
// Mostro lo spazio totale e quello disponibile filtrandolo con la funzione Peso()
echo "Spazio Disponibile: ".Peso($fs);
echo "<br />";
echo "Spazio Totale: ".$Peso($ts);
?>
Spero che questo articolo vi sia stato utile
Buon Divertimento!!!
Condividi
Tutti i campi sono obbligatori.
1 Il tuo indirizzo e-mail non verrà pubblicato ma occorre inserirlo.
2 Puoi inserire del codice JavaScript o PHP utilizzando i tag [php] e [/php].