PHP - FileInfo buffer() 函数



PHP FileInfo 的finfo_buffer()函数用于处理字符串缓冲区以查找数据的类型。

语法

以下是PHP FileInfo finfo_buffer() 函数的语法:

string finfo_buffer(resource $finfo, string $string, int $options = FILEINFO_NONE, resource $context = null)

参数

以下是finfo_buffer() 函数的参数:

  • $finfo - 它是 finfo_open() 返回的文件信息资源。

  • $string - 它是待检查的字符串缓冲区。

  • $options - 它是 FILEINFO 常量的位掩码,默认值为 FILEINFO_NONE。

  • $context - 它是使用 stream_context_create() 创建的上下文资源。

返回值

finfo_buffer() 函数返回字符串参数的文本信息,失败则返回 FALSE。

PHP 版本

它首次出现在 PHP 5.3.0 中,并在 PHP 7 和 PHP 8 中继续正常工作。

示例 1

以下是 PHP FileInfo finfo_buffer() 函数的基本示例,用于获取缓冲区的类型。

<?php
   // Create a new finfo resource
   $finfo = finfo_open(FILEINFO_MIME_TYPE);
   
   // String buffer containing PNG image data
   $buffer = file_get_contents('path/to/image.png');
   
   // Get the MIME type of the buffer
   $mt = finfo_buffer($finfo, $buffer);
   
   // Display the MIME type
   echo $mt; 
   
   // Close the finfo resource
   finfo_close($finfo);
?>

输出

以下是以下代码的结果:

image/png

示例 2

在下面的 PHP 代码中,我们将尝试使用finfo_buffer() 函数来检测文本文件的类型。

<?php
   // Create a new finfo resource
   $finfo = finfo_open(FILEINFO_MIME_TYPE);

   $buffer = "Hello, this is a text file.";
   
   $mt = finfo_buffer($finfo, $buffer);
   
   echo $mt; 
   
   finfo_close($finfo);
?> 

输出

这将生成以下输出:

text/plain

示例 3

现在下面的代码使用finfo_buffer() 函数的 options 参数来获取缓冲区的类型。

<?php
   // Create a new finfo resource
   $finfo = finfo_open(FILEINFO_MIME);

   $buffer = file_get_contents('path/to/document.pdf');
   
   $mt = finfo_buffer($finfo, $buffer, FILEINFO_NONE);
   
   // Print the result
   echo $mt; 
   
   finfo_close($finfo);
?> 

输出

这将创建以下输出:

application/pdf; charset=binary

示例 4

在下面的示例中,我们使用finfo_buffer() 函数处理二进制数据,并了解如何处理它。

<?php
   // Create a new finfo resource
   $finfo = finfo_open(FILEINFO_MIME_TYPE);

   // Generate random binary data
   $buffer = random_bytes(10); 
   
   $mt = finfo_buffer($finfo, $buffer);
   
   // Print the result
   echo $mt; 
   
   finfo_close($finfo);
?> 

输出

以下是上述代码的输出:

application/octet-stream

总结

finfo_buffer() 函数是 PHP 中的内置方法,用于处理文件信息。我们已经看到了四个不同的示例,展示了如何使用此函数来检测不同类型数据的 MIME 类型。

php_function_reference.htm
广告