You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1022 B
28 lines
1022 B
4 years ago
|
# MIME Sniffing
|
||
|
|
||
|
This library aims to be a complete implementation of [the WHATWG Mime Sniffing](https://mimesniff.spec.whatwg.org/) specification. Presently it only implements MIME type parsing (in other words, MIME sniffing itself is not implemented), but it will be expanded in due course.
|
||
|
|
||
|
## Features
|
||
|
|
||
|
### Parsing
|
||
|
|
||
|
A MIME type string may be parsed into a structured `MimeType` instance as follows:
|
||
|
|
||
|
```php
|
||
|
$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"
|
||
|
```
|
||
|
|
||
|
### Normalizing
|
||
|
|
||
|
Once parsed, a `MimeType` instance can be serialized to produce a normalized text representation:
|
||
|
|
||
|
```php
|
||
|
$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"
|
||
|
```
|