Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

extension_guesser.php

Zuletzt modifiziert: 09.10.2024, 12:52 - Dateigröße: 15.70 KiB


001  <?php
002  /**
003  *
004  * This file is part of the phpBB Forum Software package.
005  *
006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
007  * @license GNU General Public License, version 2 (GPL-2.0)
008  *
009  * For full copyright and license information, please see
010  * the docs/CREDITS.txt file.
011  *
012  */
013   
014  namespace phpbb\mimetype;
015   
016  class extension_guesser extends guesser_base
017  {
018      /**
019      * @var file extension map
020      */
021      protected $extension_map = array(
022          '3dm'        => 'x-world/x-3dmf',
023          '3dmf'        => 'x-world/x-3dmf',
024          'a'        => 'application/octet-stream',
025          'aab'        => 'application/x-authorware-bin',
026          'aam'        => 'application/x-authorware-map',
027          'aas'        => 'application/x-authorware-seg',
028          'abc'        => 'text/vnd.abc',
029          'acgi'        => 'text/html',
030          'afl'        => 'video/animaflex',
031          'ai'        => 'application/postscript',
032          'aif'        => 'audio/aiff',
033          'aifc'        => 'audio/aiff',
034          'aiff'        => 'audio/aiff',
035          'aim'        => 'application/x-aim',
036          'aip'        => 'text/x-audiosoft-intra',
037          'ani'        => 'application/x-navi-animation',
038          'aos'        => 'application/x-nokia-9000-communicator-add-on-software',
039          'aps'        => 'application/mime',
040          'arc'        => 'application/octet-stream',
041          'arj'        => 'application/arj',
042          'art'        => 'image/x-jg',
043          'asf'        => 'video/x-ms-asf',
044          'asm'        => 'text/x-asm',
045          'asp'        => 'text/asp',
046          'asx'        => 'video/x-ms-asf',
047          'au'        => 'audio/x-au',
048          'avi'        => 'video/avi',
049          'avs'        => 'video/avs-video',
050          'bcpio'        => 'application/x-bcpio',
051          'bin'        => 'application/x-binary',
052          'bm'        => 'image/bmp',
053          'bmp'        => 'image/bmp',
054          'boo'        => 'application/book',
055          'book'        => 'application/book',
056          'boz'        => 'application/x-bzip2',
057          'bsh'        => 'application/x-bsh',
058          'bz'        => 'application/x-bzip',
059          'bz2'        => 'application/x-bzip2',
060          'c'        => 'text/x-c',
061          'c++'        => 'text/x-c',
062          'cat'        => 'application/vnd.ms-pki.seccat',
063          'cc'        => 'text/plain',
064          'ccad'        => 'application/clariscad',
065          'cco'        => 'application/x-cocoa',
066          'cdf'        => 'application/cdf',
067          'cer'        => 'application/x-x509-ca-cert',
068          'cha'        => 'application/x-chat',
069          'chat'        => 'application/x-chat',
070          'class'        => 'application/java',
071          'com'        => 'application/octet-stream',
072          'conf'        => 'text/plain',
073          'cpio'        => 'application/x-cpio',
074          'cpp'        => 'text/x-c',
075          'cpt'        => 'application/x-cpt',
076          'crl'        => 'application/pkix-crl',
077          'crt'        => 'application/x-x509-ca-cert',
078          'csh'        => 'application/x-csh',
079          'css'        => 'text/css',
080          'cxx'        => 'text/plain',
081          'dcr'        => 'application/x-director',
082          'deepv'        => 'application/x-deepv',
083          'def'        => 'text/plain',
084          'der'        => 'application/x-x509-ca-cert',
085          'dif'        => 'video/x-dv',
086          'dir'        => 'application/x-director',
087          'dl'        => 'video/dl',
088          'doc'        => 'application/msword',
089          'dot'        => 'application/msword',
090          'dp'        => 'application/commonground',
091          'drw'        => 'application/drafting',
092          'dump'        => 'application/octet-stream',
093          'dv'        => 'video/x-dv',
094          'dvi'        => 'application/x-dvi',
095          'dwf'        => 'model/vnd.dwf',
096          'dwg'        => 'image/x-dwg',
097          'dxf'        => 'image/x-dwg',
098          'dxr'        => 'application/x-director',
099          'el'        => 'text/x-script.elisp',
100          'elc'        => 'application/x-elc',
101          'env'        => 'application/x-envoy',
102          'eps'        => 'application/postscript',
103          'es'        => 'application/x-esrehber',
104          'etx'        => 'text/x-setext',
105          'evy'        => 'application/x-envoy',
106          'exe'        => 'application/octet-stream',
107          'f'        => 'text/x-fortran',
108          'f77'        => 'text/x-fortran',
109          'f90'        => 'text/x-fortran',
110          'fdf'        => 'application/vnd.fdf',
111          'fif'        => 'image/fif',
112          'fli'        => 'video/x-fli',
113          'flo'        => 'image/florian',
114          'flx'        => 'text/vnd.fmi.flexstor',
115          'fmf'        => 'video/x-atomic3d-feature',
116          'for'        => 'text/x-fortran',
117          'fpx'        => 'image/vnd.fpx',
118          'frl'        => 'application/freeloader',
119          'funk'        => 'audio/make',
120          'g'        => 'text/plain',
121          'g3'        => 'image/g3fax',
122          'gif'        => 'image/gif',
123          'gl'        => 'video/x-gl',
124          'gsd'        => 'audio/x-gsm',
125          'gsm'        => 'audio/x-gsm',
126          'gsp'        => 'application/x-gsp',
127          'gss'        => 'application/x-gss',
128          'gtar'        => 'application/x-gtar',
129          'gz'        => 'application/x-gzip',
130          'gzip'        => 'application/x-gzip',
131          'h'        => 'text/x-h',
132          'hdf'        => 'application/x-hdf',
133          'help'        => 'application/x-helpfile',
134          'hgl'        => 'application/vnd.hp-hpgl',
135          'hh'        => 'text/x-h',
136          'hlb'        => 'text/x-script',
137          'hlp'        => 'application/hlp',
138          'hpg'        => 'application/vnd.hp-hpgl',
139          'hpgl'        => 'application/vnd.hp-hpgl',
140          'hqx'        => 'application/x-binhex40',
141          'hta'        => 'application/hta',
142          'htc'        => 'text/x-component',
143          'htm'        => 'text/html',
144          'html'        => 'text/html',
145          'htmls'        => 'text/html',
146          'htt'        => 'text/webviewhtml',
147          'htx'        => 'text/html',
148          'ice'        => 'x-conference/x-cooltalk',
149          'ico'        => 'image/x-icon',
150          'idc'        => 'text/plain',
151          'ief'        => 'image/ief',
152          'iefs'        => 'image/ief',
153          'iges'        => 'application/iges',
154          'igs'        => 'application/iges',
155          'ima'        => 'application/x-ima',
156          'imap'        => 'application/x-httpd-imap',
157          'inf'        => 'application/inf',
158          'ins'        => 'application/x-internett-signup',
159          'ip'        => 'application/x-ip2',
160          'isu'        => 'video/x-isvideo',
161          'it'        => 'audio/it',
162          'iv'        => 'application/x-inventor',
163          'ivr'        => 'i-world/i-vrml',
164          'ivy'        => 'application/x-livescreen',
165          'jam'        => 'audio/x-jam',
166          'jav'        => 'text/plain',
167          'jav'        => 'text/x-java-source',
168          'java'        => 'text/x-java-source',
169          'jcm'        => 'application/x-java-commerce',
170          'jfif'        => 'image/jpeg',
171          'jfif-tbnl'    => 'image/jpeg',
172          'jpe'        => 'image/jpeg',
173          'jpeg'        => 'image/jpeg',
174          'jpg'        => 'image/jpeg',
175          'jps'        => 'image/x-jps',
176          'js'        => 'application/x-javascript',
177          'jut'        => 'image/jutvision',
178          'kar'        => 'audio/midi',
179          'ksh'        => 'text/x-script.ksh',
180          'la'        => 'audio/x-nspaudio',
181          'lam'        => 'audio/x-liveaudio',
182          'latex'        => 'application/x-latex',
183          'lha'        => 'application/x-lha',
184          'lhx'        => 'application/octet-stream',
185          'list'        => 'text/plain',
186          'lma'        => 'audio/x-nspaudio',
187          'log'        => 'text/plain',
188          'lsp'        => 'text/x-script.lisp',
189          'lst'        => 'text/plain',
190          'lsx'        => 'text/x-la-asf',
191          'ltx'        => 'application/x-latex',
192          'lzh'        => 'application/x-lzh',
193          'lzx'        => 'application/x-lzx',
194          'm'        => 'text/x-m',
195          'm1v'        => 'video/mpeg',
196          'm2a'        => 'audio/mpeg',
197          'm2v'        => 'video/mpeg',
198          'm3u'        => 'audio/x-mpequrl',
199          'man'        => 'application/x-troff-man',
200          'map'        => 'application/x-navimap',
201          'mar'        => 'text/plain',
202          'mbd'        => 'application/mbedlet',
203          'mc$'        => 'application/x-magic-cap-package-1.0',
204          'mcd'        => 'application/x-mathcad',
205          'mcf'        => 'text/mcf',
206          'mcp'        => 'application/netmc',
207          'me'        => 'application/x-troff-me',
208          'mht'        => 'message/rfc822',
209          'mhtml'        => 'message/rfc822',
210          'mid'        => 'audio/x-midi',
211          'midi'        => 'audio/x-midi',
212          'mif'        => 'application/x-mif',
213          'mime'        => 'www/mime',
214          'mjf'        => 'audio/x-vnd.audioexplosion.mjuicemediafile',
215          'mjpg'        => 'video/x-motion-jpeg',
216          'mm'        => 'application/x-meme',
217          'mme'        => 'application/base64',
218          'mod'        => 'audio/x-mod',
219          'moov'        => 'video/quicktime',
220          'mov'        => 'video/quicktime',
221          'movie'        => 'video/x-sgi-movie',
222          'mp2'        => 'audio/x-mpeg',
223          'mp3'        => 'audio/x-mpeg-3',
224          'mpa'        => 'audio/mpeg',
225          'mpc'        => 'application/x-project',
226          'mpe'        => 'video/mpeg',
227          'mpeg'        => 'video/mpeg',
228          'mpg'        => 'video/mpeg',
229          'mpga'        => 'audio/mpeg',
230          'mpp'        => 'application/vnd.ms-project',
231          'mpt'        => 'application/x-project',
232          'mpv'        => 'application/x-project',
233          'mpx'        => 'application/x-project',
234          'mrc'        => 'application/marc',
235          'ms'        => 'application/x-troff-ms',
236          'mv'        => 'video/x-sgi-movie',
237          'my'        => 'audio/make',
238          'mzz'        => 'application/x-vnd.audioexplosion.mzz',
239          'nap'        => 'image/naplps',
240          'naplps'    => 'image/naplps',
241          'nc'        => 'application/x-netcdf',
242          'ncm'        => 'application/vnd.nokia.configuration-message',
243          'nif'        => 'image/x-niff',
244          'niff'        => 'image/x-niff',
245          'nix'        => 'application/x-mix-transfer',
246          'nsc'        => 'application/x-conference',
247          'nvd'        => 'application/x-navidoc',
248          'o'        => 'application/octet-stream',
249          'oda'        => 'application/oda',
250          'omc'        => 'application/x-omc',
251          'omcd'        => 'application/x-omcdatamaker',
252          'omcr'        => 'application/x-omcregerator',
253          'p'        => 'text/x-pascal',
254          'p10'        => 'application/x-pkcs10',
255          'p12'        => 'application/x-pkcs12',
256          'p7a'        => 'application/x-pkcs7-signature',
257          'p7c'        => 'application/x-pkcs7-mime',
258          'p7m'        => 'application/x-pkcs7-mime',
259          'p7r'        => 'application/x-pkcs7-certreqresp',
260          'p7s'        => 'application/pkcs7-signature',
261          'part'        => 'application/pro_eng',
262          'pas'        => 'text/pascal',
263          'pbm'        => 'image/x-portable-bitmap',
264          'pcl'        => 'application/x-pcl',
265          'pct'        => 'image/x-pict',
266          'pcx'        => 'image/x-pcx',
267          'pdb'        => 'chemical/x-pdb',
268          'pdf'        => 'application/pdf',
269          'pfunk'        => 'audio/make.my.funk',
270          'pgm'        => 'image/x-portable-greymap',
271          'pic'        => 'image/pict',
272          'pict'        => 'image/pict',
273          'pkg'        => 'application/x-newton-compatible-pkg',
274          'pko'        => 'application/vnd.ms-pki.pko',
275          'pl'        => 'text/x-script.perl',
276          'plx'        => 'application/x-pixclscript',
277          'pm'        => 'text/x-script.perl-module',
278          'pm4'        => 'application/x-pagemaker',
279          'pm5'        => 'application/x-pagemaker',
280          'png'        => 'image/png',
281          'pnm'        => 'image/x-portable-anymap',
282          'pot'        => 'application/mspowerpoint',
283          'pov'        => 'model/x-pov',
284          'ppa'        => 'application/vnd.ms-powerpoint',
285          'ppm'        => 'image/x-portable-pixmap',
286          'pps'        => 'application/mspowerpoint',
287          'ppt'        => 'application/mspowerpoint',
288          'ppz'        => 'application/mspowerpoint',
289          'pre'        => 'application/x-freelance',
290          'prt'        => 'application/pro_eng',
291          'ps'        => 'application/postscript',
292          'psd'        => 'application/octet-stream',
293          'pvu'        => 'paleovu/x-pv',
294          'pwz'        => 'application/vnd.ms-powerpoint',
295          'py'        => 'text/x-script.phyton',
296          'pyc'        => 'applicaiton/x-bytecode.python',
297          'qcp'        => 'audio/vnd.qcelp',
298          'qd3'        => 'x-world/x-3dmf',
299          'qd3d'        => 'x-world/x-3dmf',
300          'qif'        => 'image/x-quicktime',
301          'qt'        => 'video/quicktime',
302          'qtc'        => 'video/x-qtc',
303          'qti'        => 'image/x-quicktime',
304          'qtif'        => 'image/x-quicktime',
305          'ra'        => 'audio/x-realaudio',
306          'ram'        => 'audio/x-pn-realaudio',
307          'ras'        => 'image/x-cmu-raster',
308          'rast'        => 'image/cmu-raster',
309          'rexx'        => 'text/x-script.rexx',
310          'rf'        => 'image/vnd.rn-realflash',
311          'rgb'        => 'image/x-rgb',
312          'rm'        => 'audio/x-pn-realaudio',
313          'rmi'        => 'audio/mid',
314          'rmm'        => 'audio/x-pn-realaudio',
315          'rmp'        => 'audio/x-pn-realaudio',
316          'rng'        => 'application/vnd.nokia.ringing-tone',
317          'rnx'        => 'application/vnd.rn-realplayer',
318          'roff'        => 'application/x-troff',
319          'rp'        => 'image/vnd.rn-realpix',
320          'rpm'        => 'audio/x-pn-realaudio-plugin',
321          'rt'        => 'text/richtext',
322          'rtf'        => 'text/richtext',
323          'rtx'        => 'text/richtext',
324          'rv'        => 'video/vnd.rn-realvideo',
325          's'        => 'text/x-asm',
326          's3m'        => 'audio/s3m',
327          'saveme'    => 'application/octet-stream',
328          'sbk'        => 'application/x-tbook',
329          'scm'        => 'video/x-scm',
330          'sdml'        => 'text/plain',
331          'sdp'        => 'application/x-sdp',
332          'sdr'        => 'application/sounder',
333          'sea'        => 'application/x-sea',
334          'set'        => 'application/set',
335          'sgm'        => 'text/x-sgml',
336          'sgml'        => 'text/x-sgml',
337          'sh'        => 'text/x-script.sh',
338          'shar'        => 'application/x-shar',
339          'shtml'        => 'text/x-server-parsed-html',
340          'sid'        => 'audio/x-psid',
341          'sit'        => 'application/x-stuffit',
342          'skd'        => 'application/x-koan',
343          'skm'        => 'application/x-koan',
344          'skp'        => 'application/x-koan',
345          'skt'        => 'application/x-koan',
346          'sl'        => 'application/x-seelogo',
347          'smi'        => 'application/smil',
348          'smil'        => 'application/smil',
349          'snd'        => 'audio/x-adpcm',
350          'sol'        => 'application/solids',
351          'spc'        => 'text/x-speech',
352          'spl'        => 'application/futuresplash',
353          'spr'        => 'application/x-sprite',
354          'sprite'    => 'application/x-sprite',
355          'src'        => 'application/x-wais-source',
356          'ssi'        => 'text/x-server-parsed-html',
357          'ssm'        => 'application/streamingmedia',
358          'sst'        => 'application/vnd.ms-pki.certstore',
359          'step'        => 'application/step',
360          'stl'        => 'application/vnd.ms-pki.stl',
361          'stp'        => 'application/step',
362          'sv4cpio'    => 'application/x-sv4cpio',
363          'sv4crc'    => 'application/x-sv4crc',
364          'svf'        => 'image/x-dwg',
365          'svr'        => 'application/x-world',
366          'swf'        => 'application/x-shockwave-flash',
367          't'        => 'application/x-troff',
368          'talk'        => 'text/x-speech',
369          'tar'        => 'application/x-tar',
370          'tbk'        => 'application/x-tbook',
371          'tcl'        => 'text/x-script.tcl',
372          'tcsh'        => 'text/x-script.tcsh',
373          'tex'        => 'application/x-tex',
374          'texi'        => 'application/x-texinfo',
375          'texinfo'    => 'application/x-texinfo',
376          'text'        => 'text/plain',
377          'tgz'        => 'application/x-compressed',
378          'tif'        => 'image/tiff',
379          'tiff'        => 'image/tiff',
380          'tr'        => 'application/x-troff',
381          'tsi'        => 'audio/tsp-audio',
382          'tsp'        => 'audio/tsplayer',
383          'tsv'        => 'text/tab-separated-values',
384          'turbot'    => 'image/florian',
385          'txt'        => 'text/plain',
386          'uil'        => 'text/x-uil',
387          'uni'        => 'text/uri-list',
388          'unis'        => 'text/uri-list',
389          'unv'        => 'application/i-deas',
390          'uri'        => 'text/uri-list',
391          'uris'        => 'text/uri-list',
392          'ustar'        => 'multipart/x-ustar',
393          'uu'        => 'text/x-uuencode',
394          'uue'        => 'text/x-uuencode',
395          'vcd'        => 'application/x-cdlink',
396          'vcs'        => 'text/x-vcalendar',
397          'vda'        => 'application/vda',
398          'vdo'        => 'video/vdo',
399          'vew'        => 'application/groupwise',
400          'viv'        => 'video/vivo',
401          'vivo'        => 'video/vivo',
402          'vmd'        => 'application/vocaltec-media-desc',
403          'vmf'        => 'application/vocaltec-media-file',
404          'voc'        => 'audio/voc',
405          'vos'        => 'video/vosaic',
406          'vox'        => 'audio/voxware',
407          'vqe'        => 'audio/x-twinvq-plugin',
408          'vqf'        => 'audio/x-twinvq',
409          'vql'        => 'audio/x-twinvq-plugin',
410          'vrml'        => 'application/x-vrml',
411          'vrt'        => 'x-world/x-vrt',
412          'vsd'        => 'application/x-visio',
413          'vst'        => 'application/x-visio',
414          'vsw'        => 'application/x-visio',
415          'w60'        => 'application/wordperfect6.0',
416          'w61'        => 'application/wordperfect6.1',
417          'w6w'        => 'application/msword',
418          'wav'        => 'audio/wav',
419          'wb1'        => 'application/x-qpro',
420          'wbmp'        => 'image/vnd.wap.wbmp',
421          'web'        => 'application/vnd.xara',
422          'wiz'        => 'application/msword',
423          'wk1'        => 'application/x-123',
424          'wmf'        => 'windows/metafile',
425          'wml'        => 'text/vnd.wap.wml',
426          'wmlc'        => 'application/vnd.wap.wmlc',
427          'wmls'        => 'text/vnd.wap.wmlscript',
428          'wmlsc'        => 'application/vnd.wap.wmlscriptc',
429          'word'        => 'application/msword',
430          'wp'        => 'application/wordperfect',
431          'wp5'        => 'application/wordperfect',
432          'wp6'        => 'application/wordperfect',
433          'wpd'        => 'application/wordperfect',
434          'wq1'        => 'application/x-lotus',
435          'wri'        => 'application/mswrite',
436          'wrl'        => 'model/vrml',
437          'wrz'        => 'model/vrml',
438          'wsc'        => 'text/scriplet',
439          'wsrc'        => 'application/x-wais-source',
440          'wtk'        => 'application/x-wintalk',
441          'xbm'        => 'image/xbm',
442          'xdr'        => 'video/x-amt-demorun',
443          'xgz'        => 'xgl/drawing',
444          'xif'        => 'image/vnd.xiff',
445          'xl'        => 'application/excel',
446          'xla'        => 'application/excel',
447          'xlb'        => 'application/excel',
448          'xlc'        => 'application/excel',
449          'xld'        => 'application/excel',
450          'xlk'        => 'application/excel',
451          'xll'        => 'application/excel',
452          'xlm'        => 'application/excel',
453          'xls'        => 'application/excel',
454          'xlt'        => 'application/excel',
455          'xlv'        => 'application/excel',
456          'xlw'        => 'application/excel',
457          'xm'        => 'audio/xm',
458          'xml'        => 'text/xml',
459          'xmz'        => 'xgl/movie',
460          'xpix'        => 'application/x-vnd.ls-xpix',
461          'xpm'        => 'image/xpm',
462          'x-png'        => 'image/png',
463          'xsr'        => 'video/x-amt-showrun',
464          'xwd'        => 'image/x-xwindowdump',
465          'xyz'        => 'chemical/x-pdb',
466          'z'        => 'application/x-compressed',
467          'zip'        => 'application/x-zip-compressed',
468          'zoo'        => 'application/octet-stream',
469          'zsh'        => 'text/x-script.zsh',
470      );
471   
472      /**
473      * {@inheritdoc}
474      */
475      public function is_supported()
476      {
477          return true;
478      }
479   
480      /**
481      * {@inheritdoc}
482      */
483      public function guess($file, $file_name = '')
484      {
485          $file_name = (empty($file_name)) ? $file : $file_name;
486          return $this->map_extension_to_type($file_name);
487      }
488   
489      /**
490      * Map extension of supplied file_name to mime type
491      *
492      * @param string $file_name Path to file or filename
493      *
494      * @return string|null Mimetype if known or null if not
495      */
496      protected function map_extension_to_type($file_name)
497      {
498          $extension = pathinfo($file_name, PATHINFO_EXTENSION);
499   
500          if (isset($this->extension_map[$extension]))
501          {
502              return $this->extension_map[$extension];
503          }
504          else
505          {
506              return null;
507          }
508      }
509  }
510