Domanda

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

Sono a conoscenza del metodo mime_content_type () e dell'estensione Fileinfo, tuttavia mime_content_type () non è affidabile e deprecato, e Fileinfo non compare tra " ; standard di " Installazione di PHP (5.2).

Ho altre opzioni?

È stato utile?

Soluzione

Hai esaminato questo pacchetto PEAR?

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

Altri suggerimenti

(lol mi dispiace di averlo chiesto mesi fa mentre stavo finendo. vabbè. potrei anche aggiungere questo ...)

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

file -bi <filepath>

Dovresti usare " exec " in PHP per farlo immagino? Sono nuovo di PHP, quindi non citarmi su questo ma ...

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

Non l'ho provato, quindi potrebbe essere necessario sfuggire alla stringa del percorso e formattare l'output.

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

È possibile eseguire una richiesta secondaria al server Web su cui si sta eseguendo, quindi analizzare l'intestazione per ottenere il tipo mime in quel modo. Poiché questo è lento, usa curl per ottenere solo le intestazioni e non la richiesta completa. Questo è importante se stai guardando file di grandi dimensioni.

Se stai usando Apache e usi php come modulo, dai un'occhiata alla funzione VIRTUAL. è un modo più veloce per eseguire una richiesta secondaria rispetto all'utilizzo dell'arricciatura.

Altrimenti, puoi cercare il tipo mime per estensione. Questo farà funzionare tutti i file con un buon nome.

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