codeinc / media-types
媒体/MIME类型查找工具
1.0.2
2018-09-14 15:27 UTC
Requires
- php: >=7.1
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-08-25 07:32:38 UTC
README
这个PHP 7.1库提供查找媒体类型(以前称为MIME类型)的工具。该库使用一个内部列表,该列表是从Apache的httpd MIME类型列表生成的。Apache的列表本身是使用IANA官方媒体类型存储库生成的。
媒体类型列表仅在内存中加载一次。您可以根据需要多次实例化类或调用MediaTypes::getMediaTypes()
,不会丢失重新解析JSON列表的时间。
用法
<?php use CodeInc\MediaTypes\MediaTypes; // looking up the media type of a file, a path or an URL // (or anything finishing by an extension) MediaTypes::getFilenameMediaType('/path/to/a/picture.jpg'); // -> 'image/jpeg' // looking up the media type for an extension MediaTypes::getExtensionMediaType('jpg'); // -> 'image/jpeg' // listing all known extensions for a media type MediaTypes::getMediaTypeExtensions('image/jpeg'); // -> ['jpeg', 'jpg', 'jpe'] // listing all media types var_dump(MediaTypes::getMediaTypes()); // assoc array // searching for media types using a shell pattern var_dump(MediaTypes::searchMediaTypes('image/*'); // -> assoc array
该类实现了IteratorAggregate
并且是可迭代的
<?php use CodeInc\MediaTypes\MediaTypes; // listing all types foreach (new MediaTypes() as $extension => $mediaType) { var_dump($extension, $mediaType); }
该类实现了ArrayAccess
并且可以作为数组使用
<?php use CodeInc\MediaTypes\MediaTypes; $mediaTypes = new MediaTypes(); // you can test the existence or either an extension or a media type var_dump(isset($mediaTypes['jpg'])); // -> true var_dump(isset($mediaTypes['image/jpeg'])); // -> true var_dump(isset($mediaTypes['a-fake/media-type'])); // -> false // you can access an extension's media type var_dump($mediaTypes['jpg']); // -> 'image/jpeg' // and a media type's extensions var_dump($mediaTypes['image/jpeg']); // -> ['jpeg', 'jpg', 'jpe'] // if the type does not exist, the value is null var_dump($mediaTypes['a-fake/media-type']; // -> null
安装
此库通过Packagist提供,并可以使用Composer进行安装
composer require codeinc/media-types
更新内部媒体类型列表
您可以使用提供的scripts/generate-media-types-list.php
脚本来重新生成内部媒体类型列表。该脚本从Apache的Subversion服务器(此处)获取列表,解析它并生成本地的assets/media-types.json
文件。
php scripts/generate-media-types-list.php
许可
该库在MIT许可下发布(请参阅LICENSE
文件)。