为什么mime_content_type()不赞成使用PHP?(Why is mime_conten

2019-06-18 09:26发布

我只是好奇,想知道为什么mime_content_type()现在被认为是过时的。

这个用于确定mime类型方法比更换容易得多Fileinfo的功能。

Answer 1:

我想这是因为Fileinfo的可以返回有关文件的详细信息 。

编辑:这是一个替代黑客:

function _mime_content_type($filename) {
    $result = new finfo();

    if (is_resource($result) === true) {
        return $result->file($filename, FILEINFO_MIME_TYPE);
    }

    return false;
}


Answer 2:

该方法未过时!

它曾经被错误地标记为手册中的过时,但它已被固定https://bugs.php.net/bug.php?id=71367于2016年一月然而 14日,在目前,它仍然是不正确标注为废弃在德国,西班牙和中国的手册。

随意使用mime_content_type()只要你喜欢:)。



Answer 3:

另一种方式是通过给构造不变FILEINFO_MIME

$finfo = new finfo(FILEINFO_MIME);
$type  = $finfo->file('path/filename');


Answer 4:

使用finfo_filefinfo_openFILEINFO_MIME_TYPE

finfo_file( finfo_open( FILEINFO_MIME_TYPE ), $filename );

这里有一个小包装,以覆盖不同的PHP环境,源自CSSMin.php 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; } 

编辑:感谢@Adam和@ficuscr澄清这个函数,其实, 不推荐使用

由于链接到MediaWiki 1.30的,上面的代码基本上改变(回):

 function getMimeType( $filename ) { return mime_content_type( $filename ); } 


文章来源: Why is mime_content_type() deprecated in PHP?