Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

PHP - FileInfo buffer() Function



The PHP FileInfo finfo_buffer() function is used to process a string buffer to find the content type of the data.

Syntax

Below is the syntax of the PHP FileInfo finfo_buffer() function −

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

Parameters

Below are the parameters of the finfo_buffer() function −

  • $finfo − It is the fileinfo resource returned by finfo_open().

  • $string − It is the string buffer to be examined.

  • $options − It is the bitmask of FILEINFO constants and the default value is FILEINFO_NONE.

  • $context − It is the context resource created with stream_context_create().

Return Value

The finfo_buffer() function returns a textual information of the string argument and FALSE on failure.

PHP Version

It was first introduced in core PHP 5.3.0 and continues to work easily in PHP 7, and PHP 8.

Example 1

Here is the basic example of the PHP FileInfo finfo_buffer() function to get the content type of the 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);
?>

Output

Here is the outcome of the following code −

image/png

Example 2

In the below PHP code we will try to use the finfo_buffer() function to detect the text file type.

<?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);
?> 

Output

This will generate the below output −

text/plain

Example 3

Now the below code is using the options parameter of the finfo_buffer() function to get the content type of the buffer.

<?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);
?> 

Output

This will create the below output −

application/pdf; charset=binary

Example 4

In the following example, we are using the finfo_buffer() function to use the binary data and to see how we can handle it.

<?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);
?> 

Output

Following is the output of the above code −

application/octet-stream

Summary

The finfo_buffer() function is a built-in method in PHP which is used to deal with the file information. And we have seen four different examples to see the usage of this function to detect the MIME type of different types of data.

php_function_reference.htm
Advertisements