600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > php文件MIME类型的获取方法

php文件MIME类型的获取方法

时间:2022-06-13 12:47:59

相关推荐

php文件MIME类型的获取方法

?<?php

$mime = array (

//applications

"ai" => "application/postscript",

"eps" => "application/postscript",

"exe" => "application/octet-stream",

"doc" => "application/vnd.ms-word",

"xls" => "application/vnd.ms-excel",

"ppt" => "application/vnd.ms-powerpoint",

"pps" => "application/vnd.ms-powerpoint",

"pdf" => "application/pdf",

"xml" => "application/xml",

"odt" => "application/vnd.oasis.opendocument.text",

"swf" => "application/x-shockwave-flash",

// archives

"gz" => "application/x-gzip",

"tgz" => "application/x-gzip",

"bz" => "application/x-bzip2",

"bz2" => "application/x-bzip2",

"tbz" => "application/x-bzip2",

"zip" => "application/zip",

"rar" => "application/x-rar",

"tar" => "application/x-tar",

"7z" => "application/x-7z-compressed",

// texts

"txt" => "text/plain",

"php" => "text/x-php",

"html" => "text/html",

"htm" => "text/html",

"js" => "text/javascript",

"css" => "text/css",

"rtf" => "text/rtf",

"rtfd" => "text/rtfd",

"py" => "text/x-python",

"java" => "text/x-java-source",

"rb" => "text/x-ruby",

"sh" => "text/x-shellscript",

"pl" => "text/x-perl",

"sql" => "text/x-sql",

// images

"bmp" => "image/x-ms-bmp",

"jpg" => "image/jpeg",

"jpeg" => "image/jpeg",

"gif" => "image/gif",

"png" => "image/png",

"tif" => "image/tiff",

"tiff" => "image/tiff",

"tga" => "image/x-targa",

"psd" => "image/vnd.adobe.photoshop",

//audio

"mp3" => "audio/mpeg",

"mid" => "audio/midi",

"ogg" => "audio/ogg",

"mp4a" => "audio/mp4",

"wav" => "audio/wav",

"wma" => "audio/x-ms-wma",

// video

"avi" => "video/x-msvideo",

"dv" => "video/x-dv",

"mp4" => "video/mp4",

"mpeg" => "video/mpeg",

"mpg" => "video/mpeg",

"mov" => "video/quicktime",

"wm" => "video/x-ms-wmv",

"flv" => "video/x-flv",

"mkv" => "video/x-matroska"

);

function _getMimeDetect() {

if (class_exists("finfo")) {

return "finfo";

} else if (function_exists("mime_content_type")) {

return "mime_content_type";

} else if ( function_exists("exec")) {

$result = exec("file -ib ".escapeshellarg(__FILE__));

if ( 0 === strpos($result, "text/x-php") OR 0 === strpos($result, "text/x-c++")) {

return "linux";

}

$result = exec("file -Ib ".escapeshellarg(__FILE__));

if ( 0 === strpos($result, "text/x-php") OR 0 === strpos($result, "text/x-c++")) {

return "bsd";

}

}

return "internal";

}

function _getMimeType($path) {

global $mime;

$fmime = _getMimeDetect();

switch($fmime) {

case "finfo":

$finfo = finfo_open(FILEINFO_MIME);

if ($finfo)

$type = @finfo_file($finfo, $path);

break;

case "mime_content_type":

$type = mime_content_type($path);

break;

case "linux":

$type = exec("file -ib ".escapeshellarg($path));

break;

case "bsd":

$type = exec("file -Ib ".escapeshellarg($path));

break;

default:

$pinfo = pathinfo($path);

$ext = isset($pinfo["extension"]) ? strtolower($pinfo["extension"]) : "";

$type = isset($mime[$ext]) ? $mime[$ext] : "unkown";

break;

}

$type = explode(";", $type);

//需要加上这段,因为如果使用mime_content_type函数来获取一个不存在的$path时会返回"application/octet-stream"

if ($fmime != "internal" AND $type[0] == "application/octet-stream") {

$pinfo = pathinfo($path);

$ext = isset($pinfo["extension"]) ? strtolower($pinfo["extension"]) : "";

if (!empty($ext) AND !empty($mime[$ext])) {

$type[0] = $mime[$ext];

}

}

return $type[0];

}

$path = "1.txt"; //实际上当前路径并不存在1.txt

var_dump(_getMimeType($path));

/*End of php*/

这里先讲解 php文件MIME类型的获取方法的内容,有兴趣的同学可以继续浏览下面的内容,下一页会更加精彩哦。

延伸阅读:

·php获取文件mime类型

·PHP根据文件后缀名获取mime类型

·PHP利用Mail_MimeDecode类提取邮件信息

·php文件上传简单示例及mime类型

·php使用fileinfo获得文件的mime类型

·php MIME类型数组

·php文件MIME类型获取

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。