Skip to content


Calculando o espaço livre no hd

Calculando o espaço livre no hd

Hoje precisei de uma função que calculava quanto de espaço foi usado de uma partição. Dei uma pesquisada e descobri que existem duas funções no PHP que me permitem calcular este valor.

1) disk_total_space – ela retorna quantos bytes de capacidade total tem uma unidade que eu aponto.
2) disk_free_space – ela retorna quantos bytes tem disponíveis em uma unidade que eu passo por parâmetro

Portanto, o número total de bytes menos o numero de bytes livres me da o numero de bytes usados certo? Baseado nessa lógica, combinada com uma função que me mostra o “tamanho humano”, eu usei estas linhas de código.

< ?php

//partição da qual quero saber o espaço usado
$iParticao = "/";

echo "O espaço usado em $iParticao é: ".(HumanSize(disk_total_space($iParticao) - disk_free_space($iParticao)));

function HumanSize($iBytes){
    $iType=array("", "Kilo", "Mega", "Giga", "Tera", "Peta", "Exa", "Zetta", "Yotta");
    $iIndex=0;

    while($Bytes >= 1024){
        $iBytes /= 1024;
        $iIndex++;
    }

    return number_format($iBytes, 2) . " $iType[$iIndex]bytes";
}
?>

Voce já sabia dessas funções?

Posted in Desenvolvimento, Interessante, Leu? Comente!, PHP.


5 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. André Valongueiro says

    Fill, sou fã desses códigos elegantes!

    Preciso aprender a programar feito gente e ir além de scripts simples em JS, estou sedento por isso faz um bom tempo. :)

    Grande abraço!

  2. Rangel says

    Essas funções são sempre úteis, e você nunca as tem quando precisa …
    Por isso … del.icio.us nela!

  3. Alexandre says

    Que tal essa aqui:

    function humansize($size)
    {
    for($si = 0; $size >= 1024; $size /= 1024, $si++);
    return round($size, 1).substr(‘ KMGTPEZY’, $si, 1).”B”;
    }

    Ela tem um resultado mais simples, mostra apenas “KB”, “MB”, GB” e não “KiloBytes” e por aí vai. Acredito que seja até mais oportuna, não vejo ninguém por aí escrevendo “O GMail dá dois Gigabytes de espaço”, costumam escrever apenas “GB”.

    Não sei o autor dessa função, não sou eu. Acho ela maravilhosamente elegante :)

  4. Andrey Pedro Lefkum says

    Ae Fill!

    Cara já usei esse código.. quando vi rodando… quase me g… hehhahahah cara… te dar uma idéia… coloca um função JPGRAF para gerar Gráficos de espaço livre em disco =D

    Até mais!

  5. silverfox says

    Bem de inicio parecia um script normal, nada demais, porem a ideia dos Arrays na função “HumanSize” ficou muito criativa ;)
    parabens



Some HTML is OK

or, reply to this post via trackback.