mensbeam / mimesniff
WHATWG MIME Sniffing 规范的实现
0.2.1
2021-03-07 03:58 UTC
Requires
- php: >=7.1
- psr/http-message: ^1.0
Requires (Dev)
- ext-intl: *
- bamarni/composer-bin-plugin: ^1.3
This package is auto-updated.
Last update: 2024-09-07 11:24:03 UTC
README
这个库旨在成为 WHATWG Mime Sniffing 规范 的完整实现。目前它仅实现了 MIME 类型解析(换句话说,MIME sniffing 本身尚未实现),但将逐步扩展。
功能
解析
可以将 MIME 类型字符串解析为结构化的 MimeType
实例,如下所示
$mimeType = \MensBeam\Mime\MimeType::parse("text/HTML; charSet=UTF-8"); echo $mimeType->type; // prints "text" echo $mimeType->subtype; // prints "html" echo $mimeType->essence; // prints "text/html" echo $mimeType->params['charset']; // prints "UTF-8"
规范化
一旦解析,MimeType
实例可以序列化为生成规范化文本表示
$typeString = 'TeXt/HTML; CHARset="UTF\-8"; charset=iso-8859-1; unset='; $mimeType = \MensBeam\Mime\MimeType::parse($typeString); echo (string) $mimeType; // prints "text/html;charset=UTF-8"
MIME 类型组
MIME Sniffing 规范定义了一系列 MIME 类型组;这些通过布尔属性 isArchive
、isAudioVideo
、isFont
、isHtml
、isImage
、isJavascript
、isJson
、isScriptable
、isXml
和 isZipBased
公开。例如
$mimeType = \MensBeam\Mime\MimeType::parse("image/svg+xml"); var_export($mimeType->isImage); // prints "true" var_export($mimeType->isXml); // prints "true" var_export($mimeType->isScriptable); // prints "true" var_export($mimeType->isArchive); // prints "false"