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é.

19
demandé sur hakre 2009-08-12 06:43:24

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;
}
20
répondu Alix Axel 2017-07-25 05:05:23

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 :).

24
répondu Adam 2017-08-29 19:05:52

une autre façon est de passer à la constante constructeur FILEINFO_MIME .

$finfo = new finfo(FILEINFO_MIME);
$type  = $finfo->file('path/filename');
7
répondu Dave Jarvis 2014-01-12 05:35:53

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 );
}
4
répondu Krinkle 2017-10-22 01:24:06