Apache MIME Types
Parses Apache MIME Types files and provides a simple interface to find
extensions by type and type by extension., (*1)
, (*2)
Features
- Bundles
mime.types
from the Apache HTTP Project. (see here)
- Bundles a JSON representation of Apache
mime.types
.
- Provides an interface for reading either flat Apache HTTP
mime.types
or a JSON representation.
Requirements
Installation
Through Composer as [dflydev/apache-mime-types][4]., (*3)
Usage
Parser
Parses Apache MIME Types in the format of mime.types
found here., (*4)
<?php
$parser = new Dflydev\ApacheMimeTypes\Parser;
$map = $parser->parse('/path/to/mime.types');
The return value from parse
is an array mapping types to an array of
extensions., (*5)
<?php
array(
'text/html' => array('html', 'htm'),
);
PhpRepository
A repository backed by static PHP arrays., (*6)
<?php
$repository = new Dflydev\ApacheMimeTypes\PhpRepository;
$type = $repository->findType('html');
$extensions = $repository->findExtensions('text/html');
var_dump($type);
var_dump($extensions);
//
// Result
//
// string(9) "text/html"
// array(2) {
// [0]=>
// string(4) "html"
// [1]=>
// string(3) "htm"
// }
//
JsonRepository
A repository backed by a JSON map of type to extensions., (*7)
{
"text/html": ["html", "htm"]
}
To use the embedded JSON:, (*8)
<?php
$repository = new Dflydev\ApacheMimeTypes\JsonRepository;
$type = $repository->findType('html');
$extensions = $repository->findExtensions('text/html');
var_dump($type);
var_dump($extensions);
//
// Result
//
// string(9) "text/html"
// array(2) {
// [0]=>
// string(4) "html"
// [1]=>
// string(3) "htm"
// }
//
To specify a specific JSON mapping:, (*9)
<?php
$repository = new Dflydev\ApacheMimeTypes\JsonRepository('/path/to/mime.types.json');
FlatRepository
A repository backed by Apache MIME Types formatted mime.types
. To use the embedded
mime.types
:, (*10)
<?php
$repository = new Dflydev\ApacheMimeTypes\FlatRepository;
$type = $repository->findType('html');
$extensions = $repository->findExtensions('text/html');
var_dump($type);
var_dump($extensions);
//
// Result
//
// string(9) "text/html"
// array(2) {
// [0]=>
// string(4) "html"
// [1]=>
// string(3) "htm"
// }
//
To specify a specific mime.types
mapping:, (*11)
<?php
$repository = new Dflydev\ApacheMimeTypes\FlatRepository('/path/to/mime.types');
License
MIT, see LICENSE., (*12)
If you have questions or want to help out, join us in the #dflydev channel
on irc.freenode.net., (*13)
Not Invented Here
This project is based heavily on skyzyx/mimetypes. The major difference is
that skyzyx/mimetypes is focussed on creating JSON files from Apache
mime.types
rather than providing a way to interact with Apache MIME Types as
a data source., (*14)