josantonius / mime-type
PHP库,用于从扩展名获取MIME类型。
Requires
- php: ^8.0
Requires (Dev)
- phpmd/phpmd: ^2.6
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.7
README
PHP库,用于从扩展名获取MIME类型。
我的项目最初的理念是将单个MIME类型与文件扩展名关联起来,但在实际使用中,这种多对一的关系反映不够准确。实际上,多个文件扩展名通常对应一个MIME类型,使得我现有的设计方法不够理想。
鉴于这些见解,我决定存档此仓库。我建议感兴趣的读者查看patrickmccallum/mimetype-io仓库中采用的方法。此项目采用更为细腻的视角,通过承认多个扩展名对应单个MIME类型的可能性,有效地管理MIME类型。我认为这将是未来管理MIME类型的一个更有前景的方法。
要求
-
操作系统:Linux | Windows。
-
PHP版本:8.0 | 8.1 | 8.2。
安装
安装此扩展的最佳方式是通过Composer。
要安装PHP MimeType库,只需
composer require josantonius/mime-type
上述命令只会安装必要的文件,如果您想下载整个源代码,可以使用
composer require josantonius/mime-type --prefer-source
您还可以使用Git克隆整个仓库
git clone https://github.com/josantonius/php-mime-type.git
可用的类
MimeType
Josantonius\MimeType\MimeType
获取所有MIME类型的数组
public function all(): array;
从MIME类型获取文件扩展名
public function getExtension(string $mimeType): string|null;
从文件扩展名获取MIME类型
public function getMime(string $extension): string|null;
MimeTypeCollection
Josantonius\MimeType\MimeTypeCollection
获取所有MIME类型的数组
public static function all(): array;
从MIME类型获取文件扩展名
public static function getExtension(string $mimeType): string|null;
从文件扩展名获取MIME类型
public static function getMime(string $extension): string|null;
用法
此库的使用示例
获取所有MIME类型的数组
use Josantonius\MimeType\MimeType; $mimeType = new MimeType(); $mimeType->all();
use Josantonius\MimeType\MimeTypeCollection; MimeTypeCollection::all();
结果
[ [".123"]=> "application/vnd.lotus-1-2-3" [".3dml"]=> "text/vnd.in3d.3dml" [".3g2"]=> "video/3gpp2" [".3gp"]=> "video/3gpp" [".7z"]=> "application/x-7z-compressed" [".aab"]=> "application/x-authorware-bin" [".aac"]=> "audio/x-aac" [".aam"]=> "application/x-authorware-map" [".aas"]=> "application/x-authorware-seg" [".abw"]=> "application/x-abiword" (...) ]
从MIME类型获取文件扩展名
use Josantonius\MimeType\MimeType; $mimeType = new MimeType(); $mimeType->getExtension('text/html'); // .html
use Josantonius\MimeType\MimeTypeCollection; MimeTypeCollection::getExtension('application/zip'); // .zip
从文件扩展名获取MIME类型
use Josantonius\MimeType\MimeType; $mimeType = new MimeType(); $mimeType->getMime('.tar'); // application/x-tar // The dot can be omitted: $mimeType->getMime('mp4'); // video/mp4
use Josantonius\MimeType\MimeTypeCollection; MimeTypeCollection::getMime('.json'); // application/json
测试
git clone https://github.com/josantonius/php-mime-type.git
cd PHP-MimeType
composer install
使用PHPUnit运行单元测试
composer phpunit
使用PHPCS运行代码标准测试
composer phpcs
运行PHP Mess Detector测试以检测代码风格的冲突
composer phpmd
运行所有之前的测试
composer tests
待办事项
- 添加新功能
- 改进测试
- 改进文档
- 改进README文件中的英文翻译
- 重构代码以移除禁用的代码风格规则(参见phpmd.xml和phpcs.xml)
变更日志
每个版本的详细变更记录在发布说明中。
贡献
请在发起pull请求、开始讨论或报告问题之前,务必阅读贡献指南。
感谢所有贡献者!💖
赞助
如果这个项目帮助您节省了开发时间,您可以赞助我以支持我的开源工作😊
许可
此存储库受MIT许可的许可。
版权所有 © 2016-2023,Josantonius