Obter o tipo MIME de um arquivo local no PHP5 sem uma extensão PECL?

StackOverflow https://stackoverflow.com/questions/51110

  •  09-06-2019
  •  | 
  •  

Pergunta

mime_content_type() está obsoleto.

Como posso encontrar o MIME type de um arquivo local usando PHP5 mas sem usar esse método obsoleto ou o PECL fileinfo extensão?

Editar:Era disso que eu tinha medo.É uma pena que eles tenham descontinuado uma função integrada em favor de outra que requer uma extensão que nem sempre está disponível.

Foi útil?

Solução

Se você não pode usar a extensão fileinfo e não deseja usar mime_content_type, suas opções são limitadas.

Provavelmente você precisará fazer uma pesquisa com base na extensão do arquivo.mime_content_type fez algo um pouco mais inteligente e procurou dados especiais no arquivo para determinar o tipo MIME.

Outras dicas

O obterID3() biblioteca é uma opção rápida e fácil que funciona na maioria das vezes.Originalmente nomeada para um projeto para obter dados MP3 ID3, a biblioteca faz muito mais do que isso e é bastante conveniente para todos os tipos de tarefas de metadados de arquivos comuns ou estranhos.

Eu o usei para obter os tipos de arquivos MIME para ferramentas online de imagem e vídeo.Em todos os testes que fiz, não vi getID3 errar no tipo MIME.

Também o usei para verificar se os vídeos do QuickTime têm dicas de streaming.Menciono isso como um exemplo de versatilidade.

Uma segunda opção mais demorada é lançar seu próprio verificador de tipo MIME, conforme já sugerido.Se você tiver um arquivo mágico MIME, poderá ir um pouco além de uma pesquisa na extensão do arquivo, comparando os primeiros n bytes de dados do arquivo com os primeiros n bytes da tabela de pesquisa do tipo MIME derivada de seu arquivo mágico MIME.

Um arquivo mágico MIME típico conterá mais de 500 conjuntos de tipos MIME, o que pode resultar em comparações lentas (muitas verificações a serem feitas).Codificar as 10 verificações de tipo MIME mais comuns em sua solução caseira ajudará nisso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top