PHP Conference Japan 2024

finfo_buffer

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_buffer -- finfo::buffer傳回關於字串緩衝區的資訊

說明

程序式風格

finfo_buffer(
    finfo $finfo,
    字串 $string,
    整數 $flags = FILEINFO_NONE,
    ?資源 $context = null
): 字串|false

物件導向風格

公開 finfo::buffer(字串 $string, 整數 $flags = FILEINFO_NONE, ?資源 $context = null): 字串|false

此函數用於獲取字串中二進制數據的相關資訊。

參數

finfo

一個 finfo 實例,由 finfo_open() 返回。

string (字串)

要檢查的檔案內容。

flags (旗標)

一個或多個 Fileinfo 常數 的析取(OR)運算結果。

context (上下文)

返回值

返回 string 參數的文字描述,如果發生錯誤則返回 false

更新日誌

版本 說明
8.1.0 finfo 參數現在需要一個 finfo 實例;以前需要的是一個 資源
8.0.0 context 現在可以為 null。

範例

範例 #1 finfo_buffer() 範例

<?php
$finfo
= new finfo(FILEINFO_MIME);
echo
$finfo->buffer($_POST["script"]) . "\n";
?>

上述範例將輸出類似以下內容:

application/x-sh; charset=us-ascii

參見

新增筆記

使用者貢獻的筆記 2 則筆記

contact at ingnu dot fr
13 年前
您可以使用以下程式碼輕鬆檢查網路資源的 MIME 類型

<?php
function getUrlMimeType($url) {
$buffer = file_get_contents($url);
$finfo = new finfo(FILEINFO_MIME_TYPE);
return
$finfo->buffer($buffer);
}
?>

我用它來檢測使用者提供的 URL 是否為 HTML 網頁(如果是,則我會對 HTML 進行一些處理),或者是一個網路上的檔案(如果是,則我會根據 MIME 類型顯示一個圖示)。
nimasdj [AT] yahoo [DOT] com
9 年前
絕對不要依賴 finfo::buffer 來取得檔案的 MIME 類型,您必須總是將檔案實際或暫時儲存,並使用 finfo_open 來取得 MIME 類型。我用一個 Excel 檔案測試過,使用 buffer 時它顯示 octet-stream,這是無效的,而使用 finfo_open 則正確顯示 ms-excel。
To Top