PHP 文件系统 tmpfile() 函数



PHP 文件系统tmpfile() 函数用于在读写 (w+) 模式下创建具有唯一名称的临时文件。此函数可以返回类似于 fopen() 函数为新文件返回的文件句柄,或者在失败时返回 false。

当文件关闭时(例如,通过调用 fclose() 函数或当没有剩余对 tmpfile() 函数返回的文件句柄的引用时),或者当脚本结束时,文件将自动删除。

语法

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

resource tmpfile ( void )

参数

tmpfile() 函数不接受任何参数。

返回值

该函数tmpfile() 在成功时返回类似于 fopen() 函数为新文件返回的文件句柄,在失败时返回 FALSE。

注意事项

如果脚本意外终止,则临时文件可能不会被删除。

错误/异常

PHP stat() 函数在以下两种情况下可能会给出错误和警告消息:

  1. 脚本结束或使用 fclose() 关闭时,临时文件会立即被删除。
  2. tmpfile() 方法通常提供布尔值 False,但通常返回一个计算结果为 False 的非布尔值。

PHP 版本

tmpfile() 函数最初作为核心 PHP 4 的一部分引入,并且与 PHP 5、PHP 7 和 PHP 8 兼容。

示例

这是一个简单的示例,向您展示如何使用 PHP 文件系统tmpfile() 函数创建临时文件。

<?php
   $temp = tmpfile();
   fwrite($temp, "Tutorialspoint!!!!");
   rewind($temp);  // Rewind to start of a file
   echo fread($temp, 1024);  // Read 1k from a file

   fclose($temp);  // it removes the file
?>

输出

以下是以下代码的结果:

Tutorialspoint!!!!

示例

以下是一个示例,演示如何在处理错误时使用tmpfile() 函数创建临时文件。

<?php
   $tempFile = tmpfile();

   if ($tempFile) {
      // Write to the temporary file
      fwrite($tempFile, "Hello, World!");

      // Move back to the beginning
      rewind($tempFile);

      // Read the content 
      echo fread($tempFile, 1024);

      // Close and delete the temporary file
      fclose($tempFile);
   } else {
      echo "Failed to create a temporary file.";
   }
?> 

输出

这将产生以下结果:

Hello, World!

示例

以下是一个使用tmpfile() 函数生成和提供可下载文件的示例。

<?php
   // Create a temporary file
   $tempFile = tmpfile();

   if ($tempFile) {
      // Generate some content
      $csvData = "Name,Email\nAmit Sharma,[email protected]\nVijay Chauhan,[email protected]";

      // Write the CSV data 
      fwrite($tempFile, $csvData);

      // Set headers for a downloadable CSV file
      header('Content-Type: text/csv');
      header('Content-Disposition: attachment; filename="users.csv"');

      // Output the content of the temporary file
      rewind($tempFile);
      fpassthru($tempFile);

      // Close and delete the temporary file
      fclose($tempFile);
   } else {
      echo "Failed to create a temporary file.";
   }
?> 

输出

这将生成以下输出:

Name,Email
Amit Sharma,[email protected]
Vijay Chauhan,[email protected]

示例

以下是一个使用tmpfile() 函数创建仅用于记录数据的临时文件的示例。

<?php
   // Create a temporary file for logging data
   $tempFile = tmpfile();

   if ($tempFile) {
      // Log some data here
      $logMessage = date('Y-m-d H:i:s') . " - User logged in successfully.\n";

      // Write the log message 
      fwrite($tempFile, $logMessage);

      // Read and output the logged data
      rewind($tempFile);
      echo "Logged data:\n";
      echo fread($tempFile, 1024);

      // Close and delete the file
      fclose($tempFile);
   } else {
      echo "Failed to create a temporary file.";
   }
?> 

输出

这将导致以下输出:

Logged data:
2024-06-27 09:50:18 - User logged in successfully.

总结

tmpfile() 方法是用于创建临时文件的内置函数。此函数对于提供可下载文件和临时记录数据非常有用。

php_function_reference.htm
广告