ctebah/mimey
最新稳定版本:v2.1.1
Composer 安装命令:
composer require ctebah/mimey
包简介
PHP package for converting file extensions to MIME types and vice versa.
README 文档
README
PHP library for converting file extensions to MIME types and vice versa. Installable as ctebah/mimey on Packagist.
Repository: github.com/ctebah/mimey — public; clone https://github.com/ctebah/mimey.git or git@github.com:ctebah/mimey.git (matches origin).
This package is a maintained fork of ralouphie/mimey (same MIT license and original copyright; see license). Upstream mapping logic and API are preserved; the ctebah/mimey package exists so dependents (for example UFW) can require it from Packagist without a custom Composer repositories entry.
This package uses httpd's mime.types to generate a mapping of file extension to MIME type and the other way around.
The mime.types file is parsed by bin/generate.php and converted into an optimized PHP array in mime.types.php
which is then wrapped by helper class \Mimey\MimeTypes.
Install
Requires PHP >= 5.4 (see composer.json).
composer require ctebah/mimey
Usage
$mimes = new \Mimey\MimeTypes; // Convert extension to MIME type: $mimes->getMimeType('json'); // application/json // Convert MIME type to extension: $mimes->getExtension('application/json'); // json
Getting All
It's rare, but some extensions have multiple MIME types:
// Get all MIME types for an extension: $mimes->getAllMimeTypes('wmz'); // array('application/x-ms-wmz', 'application/x-msmetafile')
However, there are many MIME types that have multiple extensions:
// Get all extensions for a MIME type: $mimes->getAllExtensions('image/jpeg'); // array('jpeg', 'jpg', 'jpe')
Custom Conversions
You can add custom conversions by changing the mapping that is given to MimeTypes.
There is a MimeMappingBuilder that can help with this:
// Create a builder using the built-in conversions as the basis. $builder = \Mimey\MimeMappingBuilder::create(); // Add a conversion. This conversion will take precedence over existing ones. $builder->add('custom/mime-type', 'myextension'); $mimes = new \Mimey\MimeTypes($builder->getMapping()); $mimes->getMimeType('myextension'); // custom/mime-type $mimes->getExtension('custom/mime-type'); // myextension
You can add as many conversions as you would like to the builder:
$builder->add('custom/mime-type', 'myextension'); $builder->add('foo/bar', 'foobar'); $builder->add('foo/bar', 'fbar'); $builder->add('baz/qux', 'qux'); $builder->add('cat/qux', 'qux'); ...
Optimized Custom Conversion Loading
You can optimize the loading of custom conversions by saving all conversions to a compiled PHP file as part of a build step.
// Add a bunch of custom conversions. $builder->add(...); $builder->add(...); $builder->add(...); ... // Save the conversions to a cached file. $builder->save($cache_file_path);
The file can then be loaded to avoid overhead of repeated $builder->add(...) calls:
// Load the conversions from a cached file. $builder = \Mimey\MimeMappingBuilder::load($cache_file_path); $mimes = new \Mimey\MimeTypes($builder->getMapping());
统计信息
- 总下载量: 14
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 6
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-04-13