Pourquoi le type de contenu mime () est-il déprécié en PHP?
je suis juste curieux de savoir pourquoi mime_content_type () est maintenant considéré comme déprécié.
cette méthode pour déterminer le type mime est beaucoup plus facile que le remplacement Fileinfo fonctionnalité.
4 réponses
je suppose que c'est parce que Fileinfo peut retourner plus d'information sur les fichiers .
EDIT: Voici un remplacement hack:
function _mime_content_type($filename) {
$result = new finfo();
if (is_resource($result) === true) {
return $result->file($filename, FILEINFO_MIME_TYPE);
}
return false;
}
la méthode n'est pas dépréciée!
il était une fois incorrectement marqué comme déprécié dans le manuel, mais il a été fixé https://bugs.php.net/bug.php?id=71367 le 14 janvier 2016.
cependant, à l'heure actuelle, il est encore incorrectement marqué déprécié dans le manuel allemand, espagnol et Chinois.
N'hésitez pas à utiliser mime_content_type()
quand vous voulez :).
une autre façon est de passer à la constante constructeur FILEINFO_MIME
.
$finfo = new finfo(FILEINFO_MIME);
$type = $finfo->file('path/filename');
par finfo_file
et finfo_open
, et FILEINFO_MIME_TYPE
:
finfo_file( finfo_open( FILEINFO_MIME_TYPE ), $filename );
voici un petit emballage pour couvrir différents environnements PHP, dérivé de cssmin.php dans MediaWiki 1.20.0 :
function getMimeType( $filename ) {
$realpath = realpath( $filename );
if ( $realpath
&& function_exists( 'finfo_file' )
&& function_exists( 'finfo_open' )
&& defined( 'FILEINFO_MIME_TYPE' )
) {
// Use the Fileinfo PECL extension (PHP 5.3+)
return finfo_file( finfo_open( FILEINFO_MIME_TYPE ), $realpath );
}
if ( function_exists( 'mime_content_type' ) ) {
// Deprecated in PHP 5.3
return mime_content_type( $realpath );
}
return false;
}
EDIT: Merci @Adam et @ficuscr pour préciser que cette fonction était, en fait, Non dépréciée .
à partir de MediaWiki 1.30, le code ci-dessus a été essentiellement changé (retour) en:
function getMimeType( $filename ) {
return mime_content_type( $filename );
}