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
廣告