国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php準(zhǔn)確獲取文件MIME類型的方法

2024-05-04 23:36:20
字體:
供稿:網(wǎng)友

這篇文章主要介紹了php準(zhǔn)確獲取文件MIME類型的方法,涉及php針對(duì)文件屬性操作的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了php準(zhǔn)確獲取文件MIME類型的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

 

 
  1. ?<?php 
  2. $mime = array ( 
  3. //applications 
  4. 'ai' => 'application/postscript'
  5. 'eps' => 'application/postscript'
  6. 'exe' => 'application/octet-stream'
  7. 'doc' => 'application/vnd.ms-word'
  8. 'xls' => 'application/vnd.ms-excel'
  9. 'ppt' => 'application/vnd.ms-powerpoint'
  10. 'pps' => 'application/vnd.ms-powerpoint'
  11. 'pdf' => 'application/pdf'
  12. 'xml' => 'application/xml'
  13. 'odt' => 'application/vnd.oasis.opendocument.text'
  14. 'swf' => 'application/x-shockwave-flash'
  15. // archives 
  16. 'gz' => 'application/x-gzip'
  17. 'tgz' => 'application/x-gzip'
  18. 'bz' => 'application/x-bzip2'
  19. 'bz2' => 'application/x-bzip2'
  20. 'tbz' => 'application/x-bzip2'
  21. 'zip' => 'application/zip'
  22. 'rar' => 'application/x-rar'
  23. 'tar' => 'application/x-tar'
  24. '7z' => 'application/x-7z-compressed'
  25. // texts 
  26. 'txt' => 'text/plain'
  27. 'php' => 'text/x-php'
  28. 'html' => 'text/html'
  29. 'htm' => 'text/html'
  30. 'js' => 'text/javascript'
  31. 'css' => 'text/css'
  32. 'rtf' => 'text/rtf'
  33. 'rtfd' => 'text/rtfd'
  34. 'py' => 'text/x-python'
  35. 'java' => 'text/x-java-source'
  36. 'rb' => 'text/x-ruby'
  37. 'sh' => 'text/x-shellscript'
  38. 'pl' => 'text/x-perl'
  39. 'sql' => 'text/x-sql'
  40. // images 
  41. 'bmp' => 'image/x-ms-bmp'
  42. 'jpg' => 'image/jpeg'
  43. 'jpeg' => 'image/jpeg'
  44. 'gif' => 'image/gif'
  45. 'png' => 'image/png'
  46. 'tif' => 'image/tiff'
  47. 'tiff' => 'image/tiff'
  48. 'tga' => 'image/x-targa'
  49. 'psd' => 'image/vnd.adobe.photoshop'
  50. //audio 
  51. 'mp3' => 'audio/mpeg'
  52. 'mid' => 'audio/midi'
  53. 'ogg' => 'audio/ogg'
  54. 'mp4a' => 'audio/mp4'
  55. 'wav' => 'audio/wav'
  56. 'wma' => 'audio/x-ms-wma'
  57. // video 
  58. 'avi' => 'video/x-msvideo'
  59. 'dv' => 'video/x-dv'
  60. 'mp4' => 'video/mp4'
  61. 'mpeg' => 'video/mpeg'
  62. 'mpg' => 'video/mpeg'
  63. 'mov' => 'video/quicktime'
  64. 'wm' => 'video/x-ms-wmv'
  65. 'flv' => 'video/x-flv'
  66. 'mkv' => 'video/x-matroska' 
  67. ); 
  68. function _getMimeDetect() { 
  69. if (class_exists('finfo')) { 
  70. return 'finfo'
  71. else if (function_exists('mime_content_type')) { 
  72. return 'mime_content_type'
  73. else if ( function_exists('exec')) { 
  74. $result = exec('file -ib '.escapeshellarg(__FILE__)); 
  75. if ( 0 === strpos($result'text/x-php') OR 0 === strpos($result'text/x-c++')) { 
  76. return 'linux'
  77. $result = exec('file -Ib '.escapeshellarg(__FILE__)); 
  78. if ( 0 === strpos($result'text/x-php') OR 0 === strpos($result'text/x-c++')) { 
  79. return 'bsd'
  80. return 'internal'
  81. function _getMimeType($path) { 
  82. global $mime
  83. $fmime = _getMimeDetect(); 
  84. switch($fmime) { 
  85. case 'finfo'
  86. $finfo = finfo_open(FILEINFO_MIME); 
  87. if ($finfo)  
  88. $type = @finfo_file($finfo$path); 
  89. break
  90. case 'mime_content_type'
  91. $type = mime_content_type($path); 
  92. break
  93. case 'linux'
  94. $type = exec('file -ib '.escapeshellarg($path)); 
  95. break
  96. case 'bsd'
  97. $type = exec('file -Ib '.escapeshellarg($path)); 
  98. break
  99. default
  100. $pinfo = pathinfo($path); 
  101. $ext = isset($pinfo['extension']) ? strtolower($pinfo['extension']) : ''
  102. $type = isset($mime[$ext]) ? $mime[$ext] : 'unkown'
  103. break
  104. $type = explode(';'$type); 
  105. //需要加上這段,因?yàn)槿绻褂胢ime_content_type函數(shù)來獲取一個(gè)不存在的$path時(shí)會(huì)返回'application/octet-stream' 
  106. if ($fmime != 'internal' AND $type[0] == 'application/octet-stream') { 
  107. $pinfo = pathinfo($path);  
  108. $ext = isset($pinfo['extension']) ? strtolower($pinfo['extension']) : ''
  109. if (!emptyempty($ext) AND !emptyempty($mime[$ext])) { 
  110. $type[0] = $mime[$ext]; 
  111. return $type[0]; 
  112. $path = '1.txt'//實(shí)際上當(dāng)前路徑并不存在1.txt 
  113. var_dump(_getMimeType($path)); 
  114. /*End of php*/ 

希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凌海市| 合肥市| 紫金县| 来宾市| 海南省| 通辽市| 夏邑县| 道孚县| 镇平县| 罗平县| 晋江市| 盐源县| 乐都县| 平谷区| 宁化县| 桐梓县| 洪雅县| 于都县| 扬中市| 翁牛特旗| 北川| 德惠市| 安多县| 颍上县| 甘谷县| 绥中县| 台中县| 西乌珠穆沁旗| 章丘市| 榆中县| 九台市| 托克托县| 泰和县| 木兰县| 海门市| 泊头市| 商水县| 蓝山县| 龙里县| 巴里| 宝应县|