Home  >  Article  >  Backend Development  >  PHP gets the size of all disk space on the server_PHP tutorial

PHP gets the size of all disk space on the server_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:46:361351browse

In daily programming, it is sometimes necessary to obtain disk space usage. In most cases, the disk_free_space and disk_total_space functions are used.

The following example is to obtain the size of all disk space of the server. The example is as follows:

/**

* Byte formatting Format the number of bytes into the size described by B K M G T P E Z Y

* @param int $size size

* @param int $dec display type

* @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];

}

/**

* Get single disk information

* @param $letter

* @return array

​*/

function get_disk_space($letter)

{

//Get disk information

$diskct = 0;

$disk = array();

/*if(@disk_total_space($key)!=NULL) *To prevent affecting the server, the floppy drive is not checked

{

$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; //Total disk capacity

$diskk = 0; //Disk remaining capacity

 

$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

}

/**

* Get disk usage

* @return var

​*/

function get_spec_disk($type='system')

{

$disk = array();

 

switch ($type)

{

case 'system':

​​​​ //strrev(array_pop(explode(':',strrev(getenv_info('SystemRoot')))));//Get the system drive letter

           $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;

}

From this, you can expand it, such as getting the overall disk space size and the remaining disk space.

I have to reiterate here, if the server has a floppy disk, remember to avoid it, otherwise it will hinder the server-related floppy disk running program, and using the program to read all disk usage may be slow! Notice!

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/478578.htmlTechArticleIn daily programming, sometimes it is necessary to obtain the disk space usage. In most cases, the disk_free_space and disk_total_space functions are used. The following example is to get all the disk space of the server...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn