keven/media-type

媒体类型操作和验证

1.0.1 2021-10-16 22:30 UTC

This package is auto-updated.

Last update: 2024-09-17 04:53:51 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads CI License

简单的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

您还可以通过传递第二个参数来断言类型是否有效。

许可证

MIT