PHP 文件系统 ftruncate() 函数



PHP 文件系统ftruncate()函数用于将文件截断到给定长度。它通常用于将文件截断或缩短到给定长度。如果提供的长度超过文件的现有大小,则文件将被扩展并填充空字节。

如果提供的长度小于或等于文件的长度,则文件将被截断,这意味着任何较长的内容都将被删除。

语法

以下是 PHP 文件系统ftruncate()函数的语法:

bool ftruncate ( resource $handle , int $size )

参数

以下是ftruncate()函数的必选和可选参数:

序号 参数及描述
1

handle(必选)

它是打开文件时 fopen() 返回的文件指针或句柄。

2

size(必选)

它是文件的新的长度。

返回值

该函数返回一个布尔值:如果截断成功则返回 TRUE。如果截断文件时出错则返回 FALSE。

PHP 版本

ftruncate()函数最初作为 PHP 5 的核心部分引入,并且与 PHP 7、PHP 8 兼容良好。

示例

在这个例子中,我们使用了 PHP 文件系统ftruncate()函数来截断一个文件。代码以读/写模式打开名为“myfile.txt”的文件,将其截断为 100 字节,然后关闭文件。以下是在 PHP 中如何实现:

<?php
   // Open the file in read/write mode
   $file = fopen("/PhpProjects/myfile.txt", "r+"); 
   if ($file) {
      // Truncate the file to 100 bytes
      if (ftruncate($file, 100)) {
         echo "The given file is truncated successfully";
      } else {
         echo "Error truncating file.";
      }
      fclose($file); // Close the file
   } else {
      echo "Error opening file.";
   }   
?>

输出

以下是以下代码的结果:

The given file is truncated successfully

示例

这段代码打开名为“myfile.txt”的文件,并使用ftruncate()将其截断为零长度。文件中以前的内容将被删除,从而有效地清除它。

<?php
   // Open the file in read/write mode
   $file = fopen("/PhpProjects/myfile.txt", "r+"); 
   if ($file) {
      // Truncate the file to zero length
      if (ftruncate($file, 0)) { 
         echo "The given file is truncated successfully";
      } else {
         echo "Error truncating file.";
      }
      fclose($file); // Close the file
   } else {
      echo "Error opening file.";
   }
?> 

输出

这将产生以下结果:

The given file is truncated successfully

示例

此示例使用ftruncate()函数将文件截断到文件指针的当前位置。代码打开一个文件,并使用fseek()将文件指针移动到位置50。然后使用ftruncate()将文件截断到文件指针的当前位置。

<?php
   $file = fopen("example.txt", "r+"); // Open the file 
   if ($file) {
      fseek($file, 50); // Move the file pointer to position 50
      if (ftruncate($file, ftell($file))) { // Truncate the file to current position
         echo "Truncated the file to current position.";
      } else {
         echo "Error truncating file.";
      }
      fclose($file); // Close the file
   } else {
      echo "Error opening file.";
   }
?> 

输出

这将生成以下结果:

Truncated the file to current position.

示例

此示例通过使用ftruncate()、ftell()和fseek()函数向文件追加50个空字节来扩展文件。ftell()方法确定当前位置。

<?php
   $file = fopen("example.txt", "r+"); // Open the file
   if ($file) {
      // Move the file pointer to position 100
      fseek($file, 100); 

      // Extend the file by 50 bytes
      if (ftruncate($file, ftell($file) + 50)) { 
         echo "File extended successfully.";
      } else {
         echo "Error extending file.";
      }
      fclose($file); // Close the file
   } else {
      echo "Error opening file.";
   }
?> 

输出

这将产生以下结果:

File extended successfully.

注意

文件必须以允许读写(如“r+”、“w+”或“a+”)的模式打开,因为ftruncate()函数需要对文件的读写访问权限。

总结

ftruncate()函数用于将文件的大小调整到给定长度。它主要用于截断(缩短)文件大小或通过追加空字节来扩展文件。

php_function_reference.htm
广告