程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php獲取服務器所有磁盤空間大小

php獲取服務器所有磁盤空間大小

編輯:關於PHP編程

 

在平常編程中有時需要獲取磁盤空間使用情況,大部分情況都是使用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;

}

 

 

 

由此你可以擴展你一下,如獲取整體磁盤空間大小,磁盤余下空間。

在這裡也得重新說明一下,如果服務器有軟盤記得要避開,否則會對服務器相關的軟盤運行程序有定的阻礙,使用程序讀取所有磁盤使用情況可能速度比較慢!注意!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved