Domanda

mime_content_type() è deprecato.

Come posso trovare il MIME type di un file locale utilizzando PHP5 ma senza utilizzare questo metodo deprecato o il PECL fileinfo estensione?

Modificare:Questo è ciò di cui avevo paura.È un peccato che abbiano deprecato una funzione integrata a favore di una che richiede un'estensione che non è sempre disponibile.

È stato utile?

Soluzione

Se non puoi utilizzare l'estensione fileinfo e non vuoi utilizzare mime_content_type, le tue opzioni sono limitate.

Molto probabilmente dovrai fare una ricerca in base all'estensione del file.mime_content_type ha fatto qualcosa di un po' più intelligente e ha effettivamente cercato dati speciali nel file per determinare il tipo MIME.

Altri suggerimenti

IL getID3() La libreria è un'opzione rapida e semplice che funziona per la maggior parte del tempo.Originariamente chiamata per un progetto per ottenere dati MP3 ID3, la libreria fa molto di più ed è abbastanza comoda per tutti i tipi di attività di metadati di file comuni o strane.

L'ho usato per ottenere i tipi di file MIME per strumenti di immagini e video online.In tutti i test che ho effettuato non ho visto getID3 sbagliare il tipo MIME.

L'ho usato anche per verificare se i video QuickTime hanno suggerimenti per lo streaming.Lo cito come esempio di versatilità.

Una seconda opzione che richiede più tempo è quella di eseguire il rollio del proprio controllo del tipo MIME come già suggerito.Se disponi di un file magic MIME puoi andare un po' oltre una ricerca sull'estensione del file confrontando i primi n byte di dati del file con una tabella di ricerca del tipo MIME da primi n byte derivata dal tuo file magic MIME.

Un tipico file magico MIME conterrà oltre 500 set di tipi MIME che potrebbero comportare confronti lenti (molti controlli da fare).L'hardcoding dei 10 controlli di tipo MIME più comuni nella tua soluzione implementata in casa ti aiuterà in questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top