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 文件信息扩展源中找到。

预定义常量

这些常量由该扩展在下面定义,并且仅当扩展已编译到 PHP 中或在运行时动态加载时才可用。

  • FILEINFO_NONE (整数) - 没有特殊处理。

  • FILEINFO_SYMLINK (整数) - 遵循符号链接。

  • FILEINFO_MIME_TYPE (整数) - 返回 mime 类型。自 PHP 5.3.0 起可用。

  • FILEINFO_MIME_ENCODING (integer) - 返回文件的 mime 编码。自 PHP 5.3.0 起可用。

  • FILEINFO_MIME (integer) - 返回 RFC 2045 定义的 mime 类型和 mime 编码。

  • FILEINFO_COMPRESS (整数) - 解压缩压缩文件。由于线程安全问题,自 PHP 5.3.0 起已禁用。

  • FILEINFO_DEVICES (整数) - 查看块或字符特殊设备的内容。

  • FILEINFO_CONTINUE (integer) - 返回所有匹配项,而不仅仅是第一个。

  • FILEINFO_PRESERVE_ATIME(整数) - 如果可能,保留原始访问时间。

  • FILEINFO_RAW (整数) - 不要将不可打印的字符转换为 \ooo 八进制表示。

  • FILEINFO_EXTENSION (integer) - 返回适用于文件中检测到的 MIME 类型的文件扩展名。对于通常具有多个文件扩展名的类型(例如 JPEG 图像),返回值是由正斜杠分隔的多个扩展名,例如:“jpeg/jpg/jpe/jfif”。对于 magic.mime 数据库中不可用的未知类型,则返回值为“???”。自 PHP 7.2.0 起可用。

先生编号 功能说明
1

finfo_buffer()

该函数可以返回有关字符串缓冲区的信息。

2

finfo_close()

此函数可以关闭 fileinfo 资源。

3

finfo_file()

该函数可以返回有关文件的信息。

4

dio_open()

该函数可以创建一个新的fileinfo资源。

5

finfo_set_flags()

该函数可以设置libmagic配置选项。

6

mime_content_type()

此函数可以检测文件的 MIME 内容类型(已弃用)。

7

finfo_class()

该函数可以设置串口的终端属性和波特率。

8

finfo::_construct()

该函数是 finfo_open() 的别名。

php_function_reference.htm