An implementation of the WHATWG Mime Sniffing specification
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.
 
 
 
J. King cce75a26cb Add changelog 4 years ago
lib Allow subclasses to access constructor and concrete properties 4 years ago
tests Test and correct ancillary features 4 years ago
vendor-bin Initial export from Lax 4 years ago
.gitattributes Initial export from Lax 4 years ago
.gitignore Initial export from Lax 4 years ago
.php_cs.dist Initial export from Lax 4 years ago
AUTHORS Initial export from Lax 4 years ago
CHANGELOG Add changelog 4 years ago
LICENSE Initial export from Lax 4 years ago
README.md Basic README 4 years ago
RoboFile.php Initial export from Lax 4 years ago
composer.json Change Composer description 4 years ago
composer.lock Test and correct ancillary features 4 years ago
robo Initial export from Lax 4 years ago
robo.bat Initial export from Lax 4 years ago

README.md

MIME Sniffing

This library aims to be a complete implementation of the WHATWG Mime Sniffing 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:

$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:

$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"