PHPでディスクの容量、空き容量、使用容量、使用率を取得する
CMSを作っていて、ディスクの容量、空き容量、使用率を管理画面に表示する必要があったので、取得方法を書いておきます。
<?php $si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' ); $base = 1024; $path = '/'; //全体サイズ $total_bytes = disk_total_space($path); $class = min((int)log($total_bytes , $base) , count($si_prefix) - 1); echo "全体サイズ:" . sprintf('%1.2f' , $total_bytes / pow($base,$class)) . $si_prefix[$class] . "<br />"; //空き容量 $free_bytes = disk_free_space($path); $class = min((int)log($free_bytes , $base) , count($si_prefix) - 1); echo "空き容量:" . sprintf('%1.2f' , $free_bytes / pow($base,$class)) . $si_prefix[$class] . "<br />"; //使用容量 $used_bytes = $total_bytes - $free_bytes; $class = min((int)log($used_bytes , $base) , count($si_prefix) - 1); echo "使用容量:" . sprintf('%1.2f' , $used_bytes / pow($base,$class)) . $si_prefix[$class] . "<br />"; //使用率 echo "使用率:" . round($used_bytes / $total_bytes * 100, 2) . "%<br />"; ?> ●実行結果 全体サイズ:96.22GB 空き容量:89.59GB 使用容量:6.63GB 使用率:6.89%
「disk_total_space( パス )」関数で、全体サイズのバイト数を取得でき、「disk_free_space( パス )」関数で、空き容量のバイト数を取得できます。
全体サイズと空き容量がわかれば、使用容量と使用率は計算できますよね。簡単ですね。