Heim > php教程 > php手册 > php获取服务器所有磁盘空间大小

php获取服务器所有磁盘空间大小

WBOY
Freigeben: 2016-06-13 10:45:06
Original
4100 Leute haben es durchsucht

 

在平常编程中有时需要获取磁盘空间使用情况,大部分情况都是使用disk_free_space和disk_total_space函数。

 

下面实例就是获取服务器所有磁盘空间大小,实例如下:

 

/**

    * 字节格式化 把字节数格式为B K M G T P E Z Y 描述的大小

    * @param int $size 大小

    * @param int $dec 显示类型

    * @return int

    */

function byte_format($size,$dec=2)

{

    $a = array("B", "KB", "MB", "GB", "TB", "PB","EB","ZB","YB");

    $pos = 0;

    while ($size >= 1024)   

    {

        $size /= 1024;

        $pos++;

    }

    return round($size,$dec)." ".$a[$pos];

}

 

/**

    * 取得单个磁盘信息

    * @param $letter

    * @return array

    */

function get_disk_space($letter)

{

    //获取磁盘信息

    $diskct = 0;

    $disk = array();

    /*if(@disk_total_space($key)!=NULL) *为防止影响服务器,不检查软驱

    {

     $diskct=1;

     $disk["A"]=round((@disk_free_space($key)/(1024*1024*1024)),2)."G / ".round((@disk_total_space($key)/(1024*1024*1024)),2).'G';

    }*/

    $diskz = 0; //磁盘总容量

    $diskk = 0; //磁盘剩余容量

    

    $is_disk = $letter.':';

    if(@disk_total_space($is_disk)!=NULL)

    {

     $diskct++;

     $disk[$letter][0] = byte_format(@disk_free_space($is_disk));

     $disk[$letter][1] = byte_format(@disk_total_space($is_disk));

     $disk[$letter][2] = round(((@disk_free_space($is_disk)/(1024*1024*1024))/(@disk_total_space($is_disk)/(1024*1024*1024)))*100,2).'%';

     $diskk+=byte_format(@disk_free_space($is_disk));

     $diskz+=byte_format(@disk_total_space($is_disk));

    }

    return $disk; www.2cto.com

}

 

/**

    * 取得磁盘使用情况

    * @return var

    */

function get_spec_disk($type='system')

{

    $disk = array();

    

    switch ($type)

    {

     case 'system':

        //strrev(array_pop(explode(':',strrev(getenv_info('SystemRoot')))));//取得系统盘符

        $disk = get_disk_space(strrev(array_pop(explode(':',strrev(getenv('SystemRoot'))))));

        break;

     case 'all':

        foreach (range('b','z') as $letter)

        {

         $disk = array_merge($disk,get_disk_space($letter));

        }

        break;

     default:

        $disk = get_disk_space($type);

        break;

    }

    

    return $disk;

}

 

 

 

由此你可以扩展你一下,如获取整体磁盘空间大小,磁盘余下空间。

在这里也得重新说明一下,如果服务器有软盘记得要避开,否则会对服务器相关的软盘运行程序有定的阻碍,使用程序读取所有磁盘使用情况可能速度比较慢!注意!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage