codeinc/media-types

媒体/MIME类型查找工具

1.0.2 2018-09-14 15:27 UTC

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文件)。