Popularity
2.0
Stable
Activity
0.0
Stable
68
2
14

Description

Parses Apache MIME Types files and provides a simple interface to find extensions by type and type by extension.

Code Quality Rank: L5
Programming language: PHP
License: MIT License
Tags: Files     Mime     Apache     Mimetypes    
Latest version: v1.0.1

Apache MIME Types alternatives and similar libraries

Based on the "Files" category.
Alternatively, view Apache MIME Types alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Apache MIME Types or a related project?

Add another 'Files' Library

README

Apache MIME Types

Parses Apache MIME Types files and provides a simple interface to find extensions by type and type by extension.

Build Status

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

  • PHP 5.3.3+

Installation

Through Composer as dflydev/apache-mime-types.

Usage

Parser

Parses Apache MIME Types in the format of mime.types found here.

<?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.

<?php
array(
    'text/html' => array('html', 'htm'),
);

PhpRepository

A repository backed by static PHP arrays.

<?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.

{
    "text/html": ["html", "htm"]
}

To use the embedded JSON:

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

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

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

<?php
$repository = new Dflydev\ApacheMimeTypes\FlatRepository('/path/to/mime.types');

License

MIT, see LICENSE.

Community

If you have questions or want to help out, join us in the #dflydev channel on irc.freenode.net.

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.


*Note that all licence references and agreements mentioned in the Apache MIME Types README section above are relevant to that project's source code only.