関数の概要
PHPの disk_free_space 関数は、指定したパスのディスク上で使用可能な空き容量をバイト単位で取得するための関数です。サーバーのストレージ管理や容量確認を行いたい際に便利で、ファイルシステムの空き容量を簡単に調べることができます。
パラメータの説明
directory(必須): 空き容量を取得したいディレクトリのパスを文字列で指定します。絶対パス、相対パスのどちらも使用可能です。
戻り値
指定したディレクトリの空き容量をバイト単位の整数で返します。失敗した場合は FALSE を返します。
使用例
基本的な使い方
<?php
$freeSpace = disk_free_space("/");
echo "ルートディレクトリの空き容量: " . $freeSpace . " バイト";
?>
このコードはサーバーのルートディレクトリ(”/”)の空き容量を取得し、バイト単位で表示します。
指定ディレクトリの空き容量をMB単位で取得
<?php
$path = "/var/www/html";
$freeSpace = disk_free_space($path);
if ($freeSpace !== false) {
$freeSpaceMB = $freeSpace / (1024 * 1024);
echo $path . " の空き容量は " . round($freeSpaceMB, 2) . " MBです。";
} else {
echo "空き容量の取得に失敗しました。";
}
?>
「/var/www/html」ディレクトリの空き容量をメガバイト単位でわかりやすく表示しています。失敗時にはエラーメッセージを出力。
ユーザーが指定したパスの空き容量を動的に取得
<?php
if (isset($_GET['path'])) {
$path = $_GET['path'];
$freeSpace = disk_free_space($path);
if ($freeSpace !== false) {
echo htmlspecialchars($path) . " の空き容量は " . number_format($freeSpace) . " バイトです。";
} else {
echo "無効なパスか、空き容量の取得に失敗しました。";
}
} else {
echo "パスを指定してください。";
}
?>
GETパラメータからパスを受け取り、その空き容量を動的に取得する例です。入力値は htmlspecialchars でエスケープし、セキュリティに配慮しています。
関連する関数
disk_total_space: 指定ディレクトリのディスク全体の容量を取得clearstatcache: ファイルやディレクトリの情報のキャッシュをクリアfilesize: 指定ファイルのサイズを取得
まとめ
disk_free_space 関数は、PHPでサーバーのディスク空き容量を簡単に取得できる便利な関数です。ディスク容量の監視やログ管理システム、アップロードファイルの容量制限チェックなど実務でも幅広く活用できます。引数に調べたいディレクトリのパスを指定するだけで利用でき、戻り値はバイト単位で返されます。失敗時は FALSE が返されるため、使用時はエラーハンドリングを行うことが重要です。
