在PHP中使用disk_free_space()和disk_total_space()

时间:2015-06-10 01:26:51

标签: php diskspace

我不清楚disk_free_spacedisk_total_space应该做什么。

文档分别说明“返回文件系统或磁盘分区上的可用空间”和“返回文件系统或磁盘分区的总大小”。同时,在每种情况下,该参数被描述为“文件系统或磁盘分区的目录。”

我能够仅为分区或特定文件夹获取可用磁盘空间吗?

换句话说,这个脚本的两个部分返回相同的值是否正常?

<?php 

$path = '/home/bilingueanglais'; // an estimated 14 GB according to Webmin
$free = floor( disk_free_space( $path ) / ( 1024 * 1024 ) );
$total = floor( disk_total_space( $path ) / (1024 * 1024 ) );
echo 'Diskspace for path `' . $path . '`:<br>';
echo $free . 'MB out of ' . $total . ' MB<br><br><br>';

$path = '/home/bilingueanglais/public_html/assets/theme'; // just 225 KB in reality
$free = floor( disk_free_space( $path ) / ( 1024 * 1024 ) );
$total = floor( disk_total_space( $path ) / (1024 * 1024 ) );
echo 'Diskspace for path `' . $path . '`:<br>';
echo $free . 'MB out of ' . $total . ' MB<br><br><br>';

?>

2 个答案:

答案 0 :(得分:1)

这是一个* nix惯例。我们假设您已在/var/www上安装了文件系统:

disk_free_space('/var/www');将返回与disk_free_space('/var/www/foobar.com');相同的结果,因为它们是相同的文件系统,而且是函数报告的内容。

您正在运行的内容可能会报告整个服务器的磁盘使用情况,而不仅仅是您的用户。

答案 1 :(得分:0)

它返回相同的值,因为这些函数分别专门查看 volume free / total capacity。

将其视为Linux / OS X /等上df的输出 - 它显示磁盘/卷大小而不是目录大小。