日常的なプログラミングでは、ディスク容量の使用量を取得する必要がある場合があります。ほとんどの場合、disk_free_space 関数と disk_total_space 関数が使用されます。
次の例は、サーバーのすべてのディスク領域のサイズを取得する例です。
/**
* バイトフォーマット BK M G T P E Z Y で記述されたサイズにバイト数をフォーマットします
* @param int $size サイズ
* @param int $dec 表示タイプ
* @return int
*/
関数 byte_format($size,$dec=2)
{
$a = array("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB");
$pos = 0;
一方 ($size >= 1024)
{
$size /= 1024;
$pos++;
}
Round($size,$dec) を返します。" ".$a[$pos];
}
/**
* シングルディスク情報を取得します
* @param $letter
* @return 配列
*/
関数 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));
}
$disk を返します。www.2cto.com
}
/**
* ディスク使用量を取得します
* @return var
*/
関数 get_spec_disk($type='system')
{
$disk = array();
スイッチ($type)
{
ケース「システム」:
//strrev(array_pop(explode(':',strrev(getenv_info('SystemRoot')))));//システムドライブ文字を取得します
$disk = get_disk_space(strrev(array_pop(explode(':',strrev(getenv('SystemRoot')))));
休憩;
ケース「すべて」:
foreach (range('b','z') as $letter)
{
$disk = array_merge($disk,get_disk_space($letter));
}
休憩;
デフォルト:
$disk = get_disk_space($type);
休憩;
}
$disk を返します;
}
ここから、全体のディスク容量のサイズや残りのディスク容量を取得するなど、拡張することができます。
ここで繰り返しますが、サーバーにフロッピー ディスクがある場合は、必ずそれを避けるようにしてください。そうしないと、サーバー関連のフロッピー ディスク実行プログラムが妨げられ、すべてのディスク使用量を読み取るプログラムを使用すると速度が低下する可能性があります。知らせ!