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