2009-03-16 10 views
6

Sto cercando il migliore (possibile sulla maggior parte delle versioni di PHP 5.2 e ancora attivamente sviluppato) per rilevare un tipo MIME di file in PHP.Rilevamento del tipo MIME in PHP

Sono a conoscenza del metodo mime_content_type() e dell'estensione Fileinfo, tuttavia mime_content_type() è inaffidabile e deprecato e Fileinfo non è disponibile in un'installazione "standard" di PHP (5.2).

Ho altre opzioni?

risposta

5

Avete esaminato questo pacchetto PEAR?

http://pear.php.net/package/MIME_Type

+0

Grazie. Non è l'ideale, in quanto tutto ciò che realmente fa è provare ad usare i due metodi che ho già menzionato, un altro che non funzionerà su tutti i sistemi (per esempio Windows), e poi ricade al rilevamento per estensione, ma sembra la mia migliore opzione per ora. –

0

Si potrebbe fare una sotto richiesta al server web è in esecuzione su, quindi analizzare l'intestazione per ottenere digitare il mimo in quel modo. Poiché questo è lento, usa il ricciolo per ottenere solo le intestazioni e non la richiesta completa. Questo è importante se stai cercando file di grandi dimensioni.

Se si esegue Apache e si utilizza php come modulo, dare un'occhiata alla funzione VIRTUAL. è un modo più veloce per eseguire un sottorequest rispetto all'utilizzo di arricciatura.

Altrimenti, è possibile cercare il tipo mime per estensione. Ciò renderà funzionanti tutti i file con nome.

11

(lol mi dispiace mi sono reso conto di questo mese è stato chiesto fa come stavo finendo. Vabbè. Potrebbe anche aggiungere questo ...)

Se si tratta di un server * nix è possibile utilizzare file di comando.

file -bi <filepath> 

Dovresti usare "exec" in PHP per farlo credo? Sono nuovo di PHP in modo da non citare me su questo, ma ...

$content_type = exec("file -bi " . escapeshellarg($filepath)); 

Non ho prove che quindi potrebbe essere necessario per sfuggire alla stringa di percorso e formattare l'output.

Non so se questo sarà più affidabile rispetto agli altri metodi.

+2

Uso il file -b --mime-type $ nomefile, ma buona risposta! – icco

+0

grazie grazie grazie !!!! – Kama

Problemi correlati