ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでファイルの MIME タイプを正確に取得する方法

php_PHP チュートリアルでファイルの MIME タイプを正確に取得する方法

WBOY
WBOYオリジナル
2016-07-13 09:50:37754ブラウズ

phpでファイルのMIMEタイプを正確に取得する方法

この記事では、phpでファイルのMIMEタイプを正確に取得する方法について説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

$mime = 配列 (

//アプリケーション

'ai' => '申請書/追記',

'eps' => 'アプリケーション/追記',

'exe' => 'アプリケーション/オクテットストリーム',

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

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

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

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

'pdf' => 'アプリケーション/pdf',

'xml' => 'アプリケーション/xml',

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

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

// アーカイブ

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

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

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

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

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

'zip' => 'アプリケーション/zip',

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

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

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

// テキスト

'txt' => 'テキスト/プレーン',

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

'html' => 'text/html',

'htm' => 'text/html',

'js' => 'テキスト/javascript',

'css' => 'テキスト/css',

'rtf' => 'text/rtf',

'rtfd' => 'text/rtfd',

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

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

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

「し」=> 'text/x-shellscript',

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

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

//画像

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

'jpg' => '画像/jpeg',

'jpeg' => '画像/jpeg',

'gif' => '画像/gif',

'png' => '画像/png',

'tif' => '画像/ティフ'、

'tiff' => '画像/ティフ'、

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

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

//オーディオ

'mp3' => 「オーディオ/MPEG」、

'中旬' => 「オーディオ/MIDI」、

'ogg' => 「オーディオ/ogg」、

'mp4a' => 「オーディオ/mp4」、

'wav' => 「オーディオ/wav」、

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

//ビデオ

'avi' => 'ビデオ/x-msvideo'、

'dv' => 「ビデオ/x-dv」、

'mp4' => 'ビデオ/mp4'、

'mpeg' => 'ビデオ/mpeg'、

'mpg' => 'ビデオ/mpeg'、

'mov' => 「ビデオ/クイックタイム」、

「うーん」=> 'video/x-ms-wmv',

'flv' => 「ビデオ/x-flv」、

'mkv' => 「ビデオ/x-マトロスカ」

);

関数 _getMimeDetect() {

if (class_exists('finfo')) {

「finfo」を返す;

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

「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++')) {

「linux」を返す;

}

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

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

「bsd」を返す;

}

}

「内部」を返す;

}

function _getMimeType($path) {

グローバル $mime;

$fmime = _getMimeDetect();

スイッチ($fmime) {

ケース「finfo」:

$finfo = finfo_open(FILEINFO_MIME);

if ($finfo)

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

休憩;

ケース 'mime_content_type':

$type = mime_content_type($path);

休憩;

ケース「Linux」:

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

休憩;

ケース「bsd」:

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

休憩;

デフォルト:

$pinfo = パス情報($path);

$ext = isset($pinfo['extension']) ? strto lower($pinfo['extension']) : '';

$type = isset($mime[$ext]) ? $mime[$ext] : '不明';

休憩;

}

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

//mime_content_type関数を使用した場合に存在しない$pathを取得すると'application/octet-stream'が返されるため、このセグメントを追加する必要があります

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

$pinfo = パス情報($path);

$ext = isset($pinfo['extension']) ? strto lower($pinfo['extension']) : '';

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

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

}

}

$type[0] を返す;

}

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

var_dump(_getMimeType($path));

/*php の終わり*/

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1017841.html技術記事 PHP でファイルの MIME タイプを正確に取得する方法 この記事では、PHP でファイルの MIME タイプを正確に取得する方法について説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです: 1 2 3 4 5 6...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。