PHP - 檔案資訊函式



FileInfo 函式模組可以透過檢查檔案內部特定位置的某些魔術位元組序列來嘗試確定檔案的型別和編碼。雖然這不是一種理想的方法,但所使用的啟發式方法效果非常好。

在 PHP 5.3.0 版本之前,可能需要 magic_open 庫來構建此擴充套件。

從 PHP 5.3.0 開始,此擴充套件預設啟用。在此之前,fileinfo 是一個 PECL 擴充套件,但不再在那裡維護。

Windows 使用者必須在 php.ini 中包含捆綁的 php_fileinfo.dll DLL 檔案才能啟用此擴充套件。

libmagic 庫可以與 PHP 捆綁在一起,但包含 PHP 特定的更改。一個針對 libmagic 的補丁,名為 libmagic.patch,是維護的,可以在 PHP fileinfo 擴充套件的原始碼中找到。

預定義常量

此擴充套件定義以下常量,只有在將擴充套件編譯到 PHP 中或在執行時動態載入時才可用。

  • FILEINFO_NONE (integer) − 無特殊處理。

  • FILEINFO_SYMLINK (integer) − 跟蹤符號連結。

  • FILEINFO_MIME_TYPE (integer) − 返回 MIME 型別。自 PHP 5.3.0 起可用。

  • FILEINFO_MIME_ENCODING (integer) − 返回檔案的 MIME 編碼。自 PHP 5.3.0 起可用。

  • FILEINFO_MIME (integer) − 返回 RFC 2045 定義的 MIME 型別和 MIME 編碼。

  • FILEINFO_COMPRESS (integer) − 解壓縮壓縮檔案。自 PHP 5.3.0 起由於執行緒安全問題而停用。

  • FILEINFO_DEVICES (integer) − 檢視塊或字元特殊裝置的內容。

  • FILEINFO_CONTINUE (integer) − 返回所有匹配項,而不僅僅是第一個。

  • FILEINFO_PRESERVE_ATIME (integer) − 如果可能,保留原始訪問時間。

  • FILEINFO_RAW (integer) − 不要將不可列印字元轉換為 \ooo 八進位制表示。

  • FILEINFO_EXTENSION (integer) − 返回在檔案中檢測到的 MIME 型別適用的副檔名。對於通常具有多個副檔名的型別(例如 JPEG 影像),返回值是多個由正斜槓分隔的副檔名,例如:“jpeg/jpg/jpe/jfif”。對於 magic.mime 資料庫中不可用的未知型別,返回值為“???”。自 PHP 7.2.0 起可用。

函式列表

以下是 FileInfo 類中可用函式的完整列表:

序號 函式及描述 PHP 版本
1

finfo_buffer()

此函式可以返回關於字串緩衝區的資訊。

5.3.0
2

finfo_close()

此函式可以關閉 fileinfo 資源。

5.3.0
3

finfo_file()

此函式可以返回關於檔案的資訊。

5.3.0
4

finfo_open()

此函式可以建立一個新的 fileinfo 資源。

5.3.0
5

finfo_set_flags()

此函式可以設定 libmagic 配置選項。

5.3.0
6

mime_content_type()

此函式可以檢測檔案的 MIME 內容型別(已棄用)。

4.3.0
7

finfo_class()

此函式可以設定序列埠的終端屬性和波特率。

5.3.0
8

finfo::_construct()

此函式是 finfo_open() 的別名。

5.3.0
php_function_reference.htm
廣告