thephpleague/mime-type-detection
thephpleague/mime-type-detection has 1,343 GitHub stars and 29 forks. GitHot measured -1 stars in 24 hours and -1 in 7 days. Last checked 2026-11-14 23:28 UTC. Last push 2026-07-09.
Crecimiento de estrellas medido
- in 24h
- -1
- in 7 days
- -1
- in 15 days
- Recopilando historial
- in 1 month
- Recopilando historial
Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.
Acerca de
League Mime Type Detection
Herramientas de desarrolloREADME.md
OriginalLeague Mime Type Detection
This package supplies a generic mime-type detection interface with a
finfo based implementation.
Usage
composer require league/mime-type-detection
Consumer interface
Your code is advised to couple to the following interfaces:
League\MimetypeDetection\MimeTypeDetector
This contract is used to detect mimetypes based on file names and file contents.League\MimetypeDetection\ExtensionLookup
This contract is used to lookup one or all mimetypes for a given file extension. Added in1.13.0.
Detectors
Finfo with extension fallback:
$detector = new League\MimeTypeDetection\FinfoMimeTypeDetector();
// Detect by contents, fall back to detection by extension.
$mimeType = $detector->detectMimeType('some/path.php', 'string contents');
// Detect by contents only, no extension fallback.
$mimeType = $detector->detectMimeTypeFromBuffer('string contents');
// Detect by actual file, no extension fallback.
$mimeType = $detector->detectMimeTypeFromFile('existing/path.php');
// Only detect by extension
$mimeType = $detector->detectMimeTypeFromPath('any/path.php');
// Constructor options
$detector = new League\MimeTypeDetection\FinfoMimeTypeDetector(
$pathToMimeDatabase, // Custom mime database location, default: ''
$customExtensionMap, // Custom extension fallback mapp, default: null
$bufferSampleSize // Buffer size limit, used to take a sample (substr) from the input buffer to reduce memory consumption.
);
Extension only:
$detector = new League\MimeTypeDetection\ExtensionMimeTypeDetector();
// Only detect by extension, ignores the file contents
$mimeType = $detector->detectMimeType('some/path.php', 'string contents');
// Always returns null
$mimeType = $detector->detectMimeTypeFromBuffer('string contents');
// Only detect by extension
$mimeType = $detector->detectMimeTypeFromFile('existing/path.php');
// Only detect by extension
$mimeType = $detector->detectMimeTypeFromPath('any/path.php');
Extension lookup by mime-type
This feature was added in version
1.13.0
The various implementations can look up the extensions that can be used for a given mime-type.
// string | null
$extension = $detector->lookupExtension($mime$type);
// array<string>
$allExtensions = $detector->lookupAllExtensions($mimeType);
Extension mime-type lookup
As a fallback for finfo based lookup, an extension map
is used to determine the mime-type. There is an advised implementation
shipped, which is generated from information collected by the npm
package mime-db.
Provided extension maps
Generated:
$map = new League\MimeTypeDetection\GeneratedExtensionToMimeTypeMap();
// string mime-type or NULL
$mimeType = $map->lookupMimeType('png');
Overriding decorator
$innerMap = new League\MimeTypeDetection\GeneratedExtensionToMimeTypeMap();
$map = new League\MimeTypeDetection\OverridingExtensionToMimeTypeMap($innerMap, ['png' => 'custom/mimetype']);
// string "custom/mimetype"
$mimeType = $map->lookupMimeType('png');
Empty:
$map = new League\MimeTypeDetection\EmptyExtensionToMimeTypeMap();
// Always returns NULL
$mimeType = $map->lookupMimeType('png');