PHP 文件系统 disk_free_space() 函数



PHP 文件系统 disk_free_space() 函数用于确定磁盘或磁盘分区上的可用空间量。它为程序员提供了一种简单的方法来跟踪 PHP 程序正在使用的磁盘空间量。

给定包含目录的字符串,disk_free_space() 函数可以返回对应文件系统或磁盘分区上可用的字节数。

语法

以下是 PHP 文件系统 disk_free_space() 函数的语法 -

float disk_free_space ( string $directory )

参数

以下是 disk_free_space() 函数所需的参数 -

序号 参数与描述
1

directory(必需)

此路径指向您要查看的目录或磁盘分区。

返回值

该函数返回给定目录或磁盘分区中可用的字节数。如果目录无效,则返回 FALSE。

PHP 版本

disk_free_space() 函数作为 PHP 4.1.0 的核心部分提供,并且与 PHP 5、PHP 7、PHP 8 兼容良好。

示例

由于 PHP 文件系统 disk_free_space() 函数返回字节数或 FALSE,因此您可以使用条件表达式(如 if 语句和三元运算符)来查看此结果。请查看以下代码示例 -

<?php
   $directory = "/"; // Root directory
   $freeSpace = disk_free_space($directory);

   if ($freeSpace !== FALSE) {
      echo "Free space in bytes: " . $freeSpace;
   } else {
      echo "Could not determine free space.";
   }
?>

输出

这将产生以下结果 -

Free space in bytes: 129435885568

示例

为了展示 disk_free_space() 函数的基本用法,我们只需传递磁盘路径或磁盘名称。它将以字节为单位返回可用的磁盘空间信息。

<?php
   echo disk_free_space("C:");
   echo "\n";
   echo disk_free_space("E:");
?gt;

输出

这将生成以下结果 -

224150941696
209571344384

示例

现在,我们将使用特定的目录路径,借助 disk_free_space() 获取该特定路径中的可用空间。

<?php
   // Specific directory
   $directory = "/Applications/XAMPP/xamppfiles/htdocs/mac"; 
   $freeSpace = disk_free_space($directory);
      
   if ($freeSpace !== FALSE) {
      echo "Free space on $directory: " . $freeSpace;
   } else {
      echo "Could not determine free space on $directory.";
   }
?> 

输出

这将产生以下输出 -

Free space on /Applications/XAMPP/xamppfiles/htdocs/mac: 116797157376

示例

使用以下代码,我们将检查根目录中可用的磁盘空间,并查看在这种情况下如何使用 disk_free_space() 函数。获取可用空间后,我们将尝试格式化以字节为单位的值,以便使用 formatBytes() 函数将其转换为 KB、MB 或 GB,以便于阅读。

<?php
   // Root directory
   $directory = "/"; 
   $freeSpace = disk_free_space($directory);

   if ($freeSpace !== FALSE) {
      echo "Free space on our root directory: " . formatBytes($freeSpace);
   } else {
      echo "Could not determine the free space.";
   }

   function formatBytes($bytes, $precision = 2) {
      $units = ['B', 'KB', 'MB', 'GB', 'TB'];
      $pow = floor(log(max($bytes, 1)) / log(1024));
      $pow = min($pow, count($units) - 1);

      $bytes /= (1 << (10 * $pow));

      return round($bytes, $precision) . ' ' . $units[$pow];
   }
?> 

输出

这将创建以下结果 -

Free space on root directory: 108.78 GB

示例

现在,我们将尝试解决错误,以使我们的应用程序更好地运行。通常,处理因某些不需要的值导致的错误是比较好的。

<?php
   // Invalid directory
   $directory = "Applications/XAMPP/xamppfiles/htdocs/invalidDirectory"; 

   // Use disk_free_space to find available free space
   $freeSpace = disk_free_space($directory);
   
   // Handle error here
   if ($freeSpace !== FALSE) {
      echo "Free space on $directory: " . $freeSpace;
   } else {
      echo "Could not determine free space on the directory. I think directory is not available";
   }
?> 

输出

这将产生以下结果 -

Could not determine free space on the directory. I think directory is not available

注意

  • 验证您输入的目录路径是否有效且可访问。不正确的路径将导致返回 FALSE 值。
  • 该函数以字节为单位返回可用空间量。为了方便查看,您可以将其转换为更易读的单位,例如 KB、MB、GB 等。
  • 由于它与 Windows、Linux 和 macOS 兼容,因此它可以在各种场景中使用。

总结

程序员可以使用 PHP 的 disk_free_space() 函数在他们的程序中查找磁盘或目录上的可用空间量。它易于使用,并为管理和监控磁盘空间提供重要信息。

php_function_reference.htm
广告