PHPプログラミング

レシピ

ファイル / ディレクトリ

ディレクトリの使用可能な空き容量を取得する

disk_free_space関数を使って、指定したディレクトリが使用できる空き容量を確認する方法について解説します。

この記事のポイント

  • ディレクトリが使用できるディスクの容量を取得する
  • 共有サーバーを使っている場合は参考にならないので注意

目次

ディレクトリの空き容量を確認する

disk_free_space関数でディレクトリが使用できる容量(空き容量)を取得することができます。

コード例

disk_free_space('./test/');

空き容量を取得するとfloat型のバイト数を返し、取得に失敗した場合はfalseを返します。

取得結果の例

float(328252977152)

Note

共有レンタルサーバーを利用している場合、取得した値と実際に使用が許可されている容量が異なるため、ここで取得した値はあまり参考にならない可能性があることに注意してください。

使用例

取得できる値はバイト単位になるため、MB(メガバイト)単位、GB(ギガバイト)単位に変換して出力するコード例を紹介します。

コード例

// ディレクトリへのパス
$path = './test/';

$mb = 1000 * 1000;
$gb = 1000 * 1000 * 1000;

// 使用可能な容量を取得
$free_space = disk_free_space($path);

// ディスクの容量を取得
$total_space = disk_total_space($path);

echo "ディレクトリ:約" . round( ($free_space / $mb), 2) . " MB利用可能<br>";
echo "ディレクトリ:約" . round( ($free_space / $gb), 2) . " GB利用可能<br>";
echo "全体のディスク容量:約" . round( ($total_space / $gb), 2) . " GB";

出力例

ディレクトリ:約328249.94 MB利用可能
ディレクトリ:約328.25 GB利用可能
全体のディスク容量:約499.96 GB

$mb$gbに、あらかじめMB単位とGB単位を求めるための値を計算して入れておきます。

その後、ディレクトリの使用可能な容量をdisk_free_space関数で取得し、ディスク全体の容量をdisk_total_space関数で取得します。

最後にディスクの使用可能な容量をMB単位、GB単位で出力し、加えてディスク全体の容量もGB単位で出力します。
0以下の値が長くなってしまうため、round関数で四捨五入している点もポイントです。

なお、今回は分かりやすく「1KB = 1000バイト」としましたが、厳密には「1KB = 1024バイト」です。
より正確な値を取得したい場合は、次のように$mb$gbで計算する値を変更して実行してください。

コード例

$mb = 1024 * 1024;
$gb = 1024 * 1024 * 1024;

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。