Question

Je recherche le meilleur moyen (pour la plupart des installations de PHP 5.2 et toujours activement développé) de détecter un type de fichier MIME en PHP.

Je connais la méthode mime_content_type () et l'extension Fileinfo. Toutefois, mime_content_type () n'est pas fiable et obsolète, et Fileinfo ne figure pas dans un " ; standard " Installation de PHP (5.2).

Ai-je d'autres options?

Était-ce utile?

La solution

Avez-vous examiné ce package PEAR?

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

Autres conseils

(lol désolé je me suis rendu compte que cela avait été demandé il y a des mois alors que je finissais. oh bien. pourrait aussi bien ajouter ceci ...)

S'il s'agit d'un serveur * nix, vous pouvez utiliser la commande file .

file -bi <filepath>

Vous devez utiliser " exec " en PHP pour le faire, je suppose? Je suis nouveau sur PHP alors ne me citez pas là-dessus mais ...

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

Je ne l'ai pas testé, vous aurez peut-être besoin d'échapper à la chaîne de chemin et de formater la sortie.

Je ne sais pas si cela sera plus fiable que les autres méthodes.

Vous pouvez créer une sous-requête sur le serveur Web sur lequel vous vous trouvez, puis analyser l'en-tête pour obtenir le type mime de cette façon. Comme cela est lent, utilisez curl pour obtenir uniquement les en-têtes et non la requête complète. Ceci est important si vous regardez des fichiers volumineux.

Si vous utilisez Apache et utilisez php en tant que module, jetez un œil à la fonction VIRTUAL. c'est un moyen plus rapide de faire une sous-demande que d'utiliser curl.

Sinon, vous pouvez rechercher le type mime par extension. Cela fera fonctionner tous les fichiers bien nommés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top