¿Obtener el tipo MIME de un archivo local en PHP5 sin una extensión PECL?
Pregunta
mime_content_type()
es obsoleto.
¿Cómo puedo encontrar el MIME type
de un archivo local usando PHP5
pero sin utilizar este método obsoleto o el PECL fileinfo
¿extensión?
Editar:Eso es lo que tenía miedo.Es lamentable que hayan desaprobado una función incorporada en favor de una que requiere una extensión que no siempre está disponible.
Solución
Si no puede usar la extensión fileinfo y no desea usar mime_content_type, sus opciones son limitadas.
Lo más probable es que necesites realizar una búsqueda según la extensión del archivo.mime_content_type hizo algo un poco más inteligente y buscó datos especiales en el archivo para determinar el tipo mime.
Otros consejos
El obtenerID3() La biblioteca es una opción rápida y sencilla que funciona la mayor parte del tiempo.Originalmente llamada así por un proyecto para obtener datos MP3 ID3, la biblioteca hace mucho más que eso y es bastante conveniente para todo tipo de tareas de metadatos de archivos comunes o impares.
Lo he usado para obtener tipos de archivos MIME para herramientas de imágenes y videos en línea.En todas las pruebas que he realizado, no he visto que getID3 tenga un tipo MIME incorrecto.
También lo he usado para comprobar si los vídeos QuickTime tienen sugerencias de transmisión.Menciono esto como un ejemplo de versatilidad.
Una segunda opción que requiere más tiempo es ejecutar su propio verificador de tipo MIME como ya se sugirió.Si tiene un archivo mágico MIME, puede ir un poco más allá de una búsqueda en la extensión del archivo comparando los primeros n bytes de datos del archivo con una tabla de búsqueda de tipo MIME de primeros n bytes derivada de su archivo mágico MIME.
Un archivo mágico MIME típico contendrá más de 500 conjuntos de tipos MIME, lo que puede resultar en comparaciones lentas (muchas comprobaciones que hacer).Codificar las 10 comprobaciones de tipo MIME más comunes en su solución casera le ayudará.