Rilevamento del tipo MIME in PHP
-
19-08-2019 - |
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?
Soluzione
Hai esaminato questo pacchetto PEAR?
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.