keven / media-type
媒体类型操作和验证
1.0.1
2021-10-16 22:30 UTC
Requires (Dev)
- phpunit/phpunit: ^9.0
README
简单的RFC 6838媒体类型操作和验证库。
此模块将解析给定的媒体类型到其组成部分,如类型、子类型和后缀。还提供了一个格式化器将它们组合起来,这两个功能可以结合使用以将媒体类型规范化到规范形式。
安装
$ composer install keven/media-type
API
use Keven\MediaType\MediaType;
解析
$mediaType = MediaType::create('application/api+json'); $mediaType->getType(); // "application" $mediaType->getTree(); // "vnd" $mediaType->getSubtype(); // "api" $mediaType->getsuffix(); // "json" $mediaType->getParameters(); // ["charset" => "utf-8"] $mediaType->hasParameter('charset'); // true $mediaType->getParameter('charset'); // "utf-8"
解析媒体类型字符串。这将返回一个包含以下属性的对象(以下示例针对字符串 'image/vnd.svg+xml; charset=utf-8'
)
-
type
:媒体类型的类型(始终为小写)。示例:'image'
-
subtype
:媒体类型的子类型(始终为小写)。示例:'svg'
-
tree
:媒体类型的树(~供应商)(始终为小写)。示例:'vnd'
-
suffix
:媒体类型的后缀(始终为小写)。示例:'xml'
-
parameters
:添加到媒体类型末尾的参数。例如:['charset' => 'utf-8']
-
如果给定的类型字符串无效,则抛出
InvalidMediaTypeException
。
格式化
$mediaType = new MediaType('image', 'svg', 'vnd', 'xml'); echo (string) $mediaType; // "image/vnd.svg+xml"
将对象格式化为媒体类型字符串。这将返回给定对象的MIME类型字符串。
验证
MediaType::isValid('app/vnd.api+json; charset=utf-8'); // true (it's well formatted...) MediaType::isValid('app/vnd.api+json; charset=utf-8', true); // false (...but the type is not a valid IANA type) MediaType::create('unvalid media type'); // throws InvalidMediaTypeException
验证媒体类型字符串。如果字符串是格式良好的媒体类型,则返回 true
,否则返回 false
。
您还可以通过传递第二个参数来断言类型是否有效。