[ Index ] |
|
Code source de eZ Publish 3.9.0 |
1 <?php 2 // 3 // Definition of eZMimeType class 4 // 5 // Created on: <15-Aug-2002 12:44:57 sp> 6 // 7 // SOFTWARE NAME: eZ publish 8 // SOFTWARE RELEASE: 3.9.0 9 // BUILD VERSION: 17785 10 // COPYRIGHT NOTICE: Copyright (C) 1999-2006 eZ systems AS 11 // SOFTWARE LICENSE: GNU General Public License v2.0 12 // NOTICE: > 13 // This program is free software; you can redistribute it and/or 14 // modify it under the terms of version 2.0 of the GNU General 15 // Public License as published by the Free Software Foundation. 16 // 17 // This program is distributed in the hope that it will be useful, 18 // but WITHOUT ANY WARRANTY; without even the implied warranty of 19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 // GNU General Public License for more details. 21 // 22 // You should have received a copy of version 2.0 of the GNU General 23 // Public License along with this program; if not, write to the Free 24 // Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 25 // MA 02110-1301, USA. 26 // 27 // 28 29 /*! \file ezmimetype.php 30 */ 31 32 /*! 33 \class eZMimeType ezmimetype.php 34 \ingroup eZUtils 35 \brief Detection and management of MIME types. 36 37 The MIME type structure is an array with the following items: 38 - name - The name of MIME type, eg. image/jpeg 39 - suffixes - An array with possible suffixes for the filename, the first entry can be used as when creating filenames of the type. 40 If no known suffixes exists this value is \a false 41 - prefixes - An array with possible prefixes for the filename, the first entry can be used as when creating filenames of the type. 42 If no known prefixes exists this value is \a false 43 - is_valid - Boolean which tells whether this MIME type is valid or not, usually this is set to \c false if no 44 match for the file was found in which case the name will also be application/octet-stream 45 - url - The original url or file supplied to the matching system, can be \c false if buffer matching was used. 46 - filename - Just the filename part of the url 47 - dirpath - The directory path part of the url 48 - basename - The basename of the filename without suffix or prefix 49 - suffix - The suffix of the file or \c false if none 50 - prefix - The prefix of the file or \c false if none 51 52 */ 53 54 class eZMimeType 55 { 56 /*! 57 Constructor 58 */ 59 function eZMimeType() 60 { 61 $this->SuffixList = array(); 62 $this->PrefixList = array(); 63 $this->MIMEList = array(); 64 65 foreach ( $this->QuickMIMETypes as $quickMIMEType ) 66 { 67 $mimeEntry =& $this->MIMEList[$quickMIMEType[1]]; 68 if ( !isset( $mimeEntry ) ) 69 $mimeEntry = array( 'suffixes' => array(), 70 'prefixes' => false ); 71 $mimeEntry['suffixes'][] = $quickMIMEType[0]; 72 } 73 74 eZMimeType::prepareSuffixList( $this->SuffixList, $this->MIMEList ); 75 eZMimeType::preparePrefixList( $this->PrefixList, $this->MIMEList ); 76 } 77 78 /*! 79 \static 80 \return the default MIME-Type, this is used for all files that are not recognized. 81 */ 82 function defaultMimeType() 83 { 84 return array( 'name' => 'application/octet-stream', 85 'url' => false, 86 'filename' => false, 87 'dirpath' => false, 88 'basename' => false, 89 'suffix' => false, 90 'prefix' => false, 91 'suffixes' => false, 92 'prefixes' => false, 93 'is_valid' => true ); 94 } 95 96 /*! 97 \static 98 \return the defaultMimeType if \a $returnDefault is \c true, otherwise returns \c false. 99 */ 100 function defaultValue( $url, $returnDefault ) 101 { 102 if ( $returnDefault ) 103 { 104 $mime = eZMimeType::defaultMimeType(); 105 $mime['url'] = $url; 106 $suffixPos = strpos( $url, '.' ); 107 108 if ( $suffixPos !== false ) 109 { 110 $mime['suffix'] = substr( $url, $suffixPos + 1 ); 111 $mime['dirpath'] = dirname( $url ); 112 $mime['basename'] = basename( $url, '.' . $mime['suffix'] ); 113 $mime['filename'] = $mime['basename'] . '.' . $mime['suffix']; 114 } 115 else 116 { 117 $mime['basename'] = $url; 118 $mime['suffix'] = false; 119 } 120 $mime['is_valid'] = false; 121 return $mime; 122 } 123 else 124 return false; 125 } 126 127 /*! 128 Changes the MIME type attribute for the MIME info structure \a $mimeInfo to \a $mimetype, 129 and recreates all the affected fields. 130 */ 131 function changeMIMEType( &$mimeInfo, $mimetype ) 132 { 133 $mimeInfo['name'] = $mimetype; 134 $newMimeInfo = eZMimeType::findByName( $mimetype ); 135 $mimeInfo['suffixes'] = $newMimeInfo['suffixes']; 136 $mimeInfo['prefixes'] = $newMimeInfo['prefixes']; 137 $mimeInfo['suffix'] = $newMimeInfo['suffix']; 138 $mimeInfo['prefix'] = $newMimeInfo['prefix']; 139 $filename = $mimeInfo['filename']; 140 $dotPosition = strrpos( $filename, '.' ); 141 $basename = $filename; 142 if ( $dotPosition !== false ) 143 $basename = substr( $filename, 0, $dotPosition ); 144 $mimeInfo['filename'] = $basename . '.' . $mimeInfo['suffix']; 145 if ( $mimeInfo['dirpath'] ) 146 $mimeInfo['url'] = $mimeInfo['dirpath'] . '/' . $mimeInfo['filename']; 147 else 148 $mimeInfo['url'] = $mimeInfo['filename']; 149 } 150 151 /*! 152 Changes the basename attribute for the MIME info structure \a $mimeInfo to \a $basename, 153 and recreates all the affected fields. 154 */ 155 function changeBasename( &$mimeInfo, $basename ) 156 { 157 $mimeInfo['basename'] = $basename; 158 $mimeInfo['filename'] = $basename . '.' . $mimeInfo['suffix']; 159 if ( $mimeInfo['dirpath'] ) 160 $mimeInfo['url'] = $mimeInfo['dirpath'] . '/' . $mimeInfo['filename']; 161 else 162 $mimeInfo['url'] = $mimeInfo['filename']; 163 } 164 165 /*! 166 Changes the basename attribute for the MIME info structure \a $mimeInfo to \a $basename, 167 and recreates all the affected fields. 168 */ 169 function changeDirectoryPath( &$mimeInfo, $dirpath ) 170 { 171 $mimeInfo['dirpath'] = $dirpath; 172 if ( $mimeInfo['dirpath'] ) 173 $mimeInfo['url'] = $mimeInfo['dirpath'] . '/' . $mimeInfo['filename']; 174 else 175 $mimeInfo['url'] = $mimeInfo['filename']; 176 } 177 178 /*! 179 Changes the basename attribute for the MIME info structure \a $mimeInfo to \a $basename, 180 and recreates all the affected fields. 181 */ 182 function changeFileData( &$mimeInfo, $dirpath = false, $basename = false, $suffix = false, $filename = false ) 183 { 184 if ( $basename !== false ) 185 $mimeInfo['basename'] = $basename; 186 if ( $suffix !== false ) 187 $mimeInfo['suffix'] = $suffix; 188 if ( $filename !== false ) 189 { 190 $mimeInfo['filename'] = $filename; 191 } 192 else 193 { 194 $mimeInfo['filename'] = $mimeInfo['basename']; 195 $mimeInfo['filename'] .= '.' . $mimeInfo['suffix']; 196 } 197 if ( $dirpath !== false ) 198 $mimeInfo['dirpath'] = $dirpath; 199 200 if ( $mimeInfo['dirpath'] ) 201 $mimeInfo['url'] = $mimeInfo['dirpath'] . '/' . $mimeInfo['filename']; 202 else 203 $mimeInfo['url'] = $mimeInfo['filename']; 204 } 205 206 /*! 207 \return the MIME structure for the MIME type \a $mimeName. 208 If \a $returnDefault is set to \c true then it will always return a MIME structure, 209 if not it will return \c false if none were found. 210 */ 211 function findByName( $mimeName, $returnDefault = true ) 212 { 213 if ( isset( $this ) and 214 get_class( $this ) == 'ezmimetype' ) 215 $instance =& $this; 216 else 217 $instance = eZMimeType::instance(); 218 $mimeList =& $instance->MIMEList; 219 if ( isset( $mimeList[$mimeName] ) ) 220 { 221 $mime = $mimeList[$mimeName]; 222 $mime['name'] = $mimeName; 223 $mime['url'] = false; 224 $mime['filename'] = false; 225 $mime['dirpath'] = false; 226 $mime['basename'] = false; 227 $mime['suffix'] = false; 228 if ( isset( $mime['suffixes'][0] ) ) 229 $mime['suffix'] = $mime['suffixes'][0]; 230 $mime['prefix'] = false; 231 if ( isset( $mime['prefixes'][0] ) ) 232 $mime['prefix'] = $mime['prefixes'][0]; 233 $mime['is_valid'] = true; 234 return $mime; 235 } 236 return eZMimeType::defaultValue( false, $returnDefault ); 237 } 238 239 /*! 240 \static 241 Finds the MIME type for the url \a $url by examining the url itself (not the content) and returns it. 242 If \a $returnDefault is set to \c true then it will always return a MIME structure, 243 if not it will return \c false if none were found. 244 */ 245 function findByURL( $url, $returnDefault = true ) 246 { 247 if ( isset( $this ) and 248 get_class( $this ) == 'ezmimetype' ) 249 $instance =& $this; 250 else 251 $instance = eZMimeType::instance(); 252 253 $protocol = 'file'; 254 if ( preg_match( "#^([a-zA-Z0-9]+):#", $url, $matches ) ) 255 { 256 $protocol = $matches[1]; 257 } 258 if ( $protocol != 'file' ) 259 { 260 return eZMimeType::defaultValue( $url, $returnDefault ); 261 } 262 $file = $url; 263 $dirPosition = strrpos( $url, '/' ); 264 if ( $dirPosition !== false ) 265 $file = substr( $url, $dirPosition + 1 ); 266 $suffixPosition = strrpos( $file, '.' ); 267 $suffix = false; 268 $prefix = false; 269 $mimeName = false; 270 if ( $suffixPosition !== false ) 271 { 272 $suffix = strtolower( substr( $file, $suffixPosition + 1 ) ); 273 if ( $suffix ) 274 { 275 $subURL = substr( $file, 0, $suffixPosition ); 276 $suffixList =& $instance->SuffixList; 277 if ( array_key_exists( $suffix, $suffixList ) ) 278 { 279 $mimeName = $suffixList[$suffix]; 280 } 281 } 282 if ( !$mimeName ) 283 { 284 $prefixPosition = strpos( $file, '.' ); 285 if ( $prefixPosition !== false ) 286 { 287 $prefix = strtolower( substr( $file, 0, $prefixPosition ) ); 288 } 289 if ( $prefix ) 290 { 291 $subURL = substr( $file, $suffixPosition + 1 ); 292 $prefixList =& $instance->PrefixList; 293 if ( array_key_exists( $prefix, $prefixList ) ) 294 { 295 $mimeName = $prefixList[$prefix]; 296 } 297 } 298 } 299 if ( $mimeName ) 300 { 301 $mimeList =& $instance->MIMEList; 302 if ( array_key_exists( $mimeName, $mimeList ) ) 303 { 304 $lastDirPosition = strrpos( $url, '/' ); 305 $filename = $url; 306 $dirpath = false; 307 if ( $lastDirPosition !== false ) 308 { 309 $filename = substr( $url, $lastDirPosition + 1 ); 310 $dirpath = substr( $url, 0, $lastDirPosition ); 311 } 312 $lastDirPosition = strrpos( $subURL, '/' ); 313 $basename = $subURL; 314 if ( $lastDirPosition !== false ) 315 $basename = substr( $subURL, $lastDirPosition + 1 ); 316 $mime = $mimeList[$mimeName]; 317 $mime['name'] = $mimeName; 318 $mime['url'] = $url; 319 $mime['filename'] = $filename; 320 $mime['dirpath'] = $dirpath; 321 $mime['basename'] = $basename; 322 $mime['suffix'] = $suffix; 323 $mime['prefix'] = $prefix; 324 $mime['is_valid'] = true; 325 return $mime; 326 } 327 } 328 } 329 return eZMimeType::defaultValue( $url, $returnDefault ); 330 } 331 332 /*! 333 \static 334 Finds the MIME type for the url \a $url by examining the contents of the url and returns it. 335 If \a $returnDefault is set to \c true then it will always return a MIME structure, 336 if not it will return \c false if none were found. 337 \note Currently it only calls findByURL() 338 */ 339 function findByFileContents( $url, $returnDefault = true ) 340 { 341 return eZMimeType::findByURL( $url, $returnDefault ); 342 } 343 344 /*! 345 \static 346 Finds the MIME type for the buffer \a $buffer by examining the contents and returns it. 347 If \a $returnDefault is set to \c true then it will always return a MIME structure, 348 if not it will return \c false if none were found. 349 \param $length If specified it will limit how far the \a $buffer is examined 350 \param $offset If specified it will set the starting point for the \a $buffer examination 351 \param $url If specified the url will be used for MIME determination if buffer examination gives no results. 352 \note Currently it only calls findByURL() 353 */ 354 function findByBuffer( $buffer, $length = false, $offset = false, $url = false, $returnDefault = true ) 355 { 356 return eZMimeType::findByURL( $url, $returnDefault ); 357 } 358 359 /*! 360 \static 361 \return the unique instance of the eZMimeType class. 362 */ 363 function instance() 364 { 365 $instance =& $GLOBALS['eZMIMETypeInstance']; 366 if ( !isset( $instance ) ) 367 { 368 $instance = new eZMimeType(); 369 } 370 return $instance; 371 } 372 373 /*! 374 \deprecated 375 \static 376 \return the MIME-Type name for the file \a $file. 377 */ 378 function mimeTypeFor( $path, $file ) 379 { 380 eZDebug::writeWarning( 'eZMimeType::mimeTypeFor() is deprecated, use eZMimeType::findByURL() instead', 381 'DEPRECATED FUNCTION eZMimeType::mimeTypeFor' ); 382 $url = $path; 383 if ( $url ) 384 $url .= '/' . $file; 385 else 386 $url = $file; 387 $match = eZMimeType::findByURL( $url, false ); 388 if ( $match ) 389 return $match['name']; 390 else 391 return false; 392 } 393 394 /*! 395 \private 396 Goes trough the mime list and creates a reference to the mime entry using the primary suffix. 397 */ 398 function prepareSuffixList( &$suffixList, $mimeList ) 399 { 400 foreach ( $mimeList as $mimeName => $mimeData ) 401 { 402 if ( is_array( $mimeData['suffixes'] ) ) 403 { 404 foreach ( $mimeData['suffixes'] as $suffix ) 405 { 406 if ( !isset( $suffixList[$suffix] ) ) 407 $suffixList[$suffix] = $mimeName; 408 } 409 } 410 } 411 } 412 413 /*! 414 \private 415 Goes trough the mime list and creates a reference to the mime entry using the primary prefix. 416 */ 417 function preparePrefixList( &$prefixList, $mimeList ) 418 { 419 foreach ( $mimeList as $mimeName => $mimeData ) 420 { 421 if ( is_array( $mimeData['prefixes'] ) ) 422 { 423 foreach ( $mimeData['prefixes'] as $prefix ) 424 { 425 if ( !isset( $prefixList[$prefix] ) ) 426 $prefixList[$prefix] = $mimeName; 427 } 428 } 429 } 430 } 431 432 /// \privatesection 433 434 /// An associative array which maps from suffix name to MIME type name. 435 var $SuffixList; 436 /// An associative array which maps from prefix name to MIME type name. 437 var $PrefixList; 438 /// An associative array which maps MIME type name to MIME structure. 439 var $MIMEList; 440 441 var $QuickContentMatch = array( 442 array( array( 0, 'string', 'GIF87a', 'image/gif' ), 443 array( 0, 'string', 'GIF89a', 'image/gif' ) ) 444 ); 445 446 /// A list of suffixes and their MIME types, this is used to quickly initialize the system. 447 /// Should be removed to a .ini file or other external file 448 var $QuickMIMETypes = array( 449 array( 'ezpkg', 'application/x-ezpublish-package' ), 450 array( 'ez', 'application/andrew-inset' ), 451 array( 'hqx', 'application/mac-binhex40' ), 452 array( 'cpt', 'application/mac-compactpro' ), 453 array( 'doc', 'application/msword' ), 454 array( 'bin', 'application/octet-stream' ), 455 array( 'dms', 'application/octet-stream' ), 456 array( 'lha', 'application/octet-stream' ), 457 array( 'lzh', 'application/octet-stream' ), 458 array( 'exe', 'application/octet-stream' ), 459 array( 'class', 'application/octet-stream' ), 460 array( 'oda', 'application/oda' ), 461 array( 'pdf', 'application/pdf' ), 462 array( 'ps', 'application/postscript' ), 463 array( 'eps', 'application/postscript' ), 464 array( 'ai', 'application/postscript' ), 465 array( 'rtf', 'application/rtf' ), 466 array( 'sgml', 'application/sgml' ), 467 array( 'ppt', 'application/vnd.ms-powerpoint' ), 468 array( 'xls', 'application/vnd.ms-excel' ), 469 array( 'slc', 'application/vnd.wap.slc' ), 470 array( 'sic', 'application/vnd.wap.sic' ), 471 array( 'wmlc', 'application/vnd.wap.wmlc' ), 472 array( 'wmlsc', 'application/vnd.wap.wmlscriptc' ), 473 array( 'bcpio', 'application/x-bcpio' ), 474 array( 'bz2', 'application/x-bzip2' ), 475 array( 'vcd', 'application/x-cdlink' ), 476 array( 'pgn', 'application/x-chess-pgn' ), 477 array( 'cpio', 'application/x-cpio' ), 478 array( 'csh', 'application/x-csh' ), 479 array( 'dcr', 'application/x-director' ), 480 array( 'dir', 'application/x-director' ), 481 array( 'dxr', 'application/x-director' ), 482 array( 'dvi', 'application/x-dvi' ), 483 array( 'spl', 'application/x-futuresplash' ), 484 array( 'gtar', 'application/x-gtar' ), 485 array( 'gz', 'application/x-gzip' ), 486 array( 'tgz', 'application/x-gzip' ), 487 array( 'hdf', 'application/x-hdf' ), 488 array( 'js', 'application/x-javascript' ), 489 array( 'kwd', 'application/x-kword' ), 490 array( 'kwt', 'application/x-kword' ), 491 array( 'ksp', 'application/x-kspread' ), 492 array( 'kpr', 'application/x-kpresenter' ), 493 array( 'kpt', 'application/x-kpresenter' ), 494 array( 'chrt', 'application/x-kchart' ), 495 array( 'kil', 'application/x-killustrator' ), 496 array( 'skp', 'application/x-koan' ), 497 array( 'skd', 'application/x-koan' ), 498 array( 'skt', 'application/x-koan' ), 499 array( 'skm', 'application/x-koan' ), 500 array( 'latex', 'application/x-latex' ), 501 array( 'nc', 'application/x-netcdf' ), 502 array( 'cdf', 'application/x-netcdf' ), 503 array( 'rpm', 'application/x-rpm' ), 504 array( 'sh', 'application/x-sh' ), 505 array( 'shar', 'application/x-shar' ), 506 array( 'swf', 'application/x-shockwave-flash' ), 507 array( 'sit', 'application/x-stuffit' ), 508 array( 'sv4cpio', 'application/x-sv4cpio' ), 509 array( 'sv4crc', 'application/x-sv4crc' ), 510 array( 'tar', 'application/x-tar' ), 511 array( 'tcl', 'application/x-tcl' ), 512 array( 'tex', 'application/x-tex' ), 513 array( 'texinfo', 'application/x-texinfo' ), 514 array( 'texi', 'application/x-texinfo' ), 515 array( 't', 'application/x-troff' ), 516 array( 'tr', 'application/x-troff' ), 517 array( 'roff', 'application/x-troff' ), 518 array( 'man', 'application/x-troff-man' ), 519 array( 'me', 'application/x-troff-me' ), 520 array( 'ms', 'application/x-troff-ms' ), 521 array( 'ustar', 'application/x-ustar' ), 522 array( 'src', 'application/x-wais-source' ), 523 array( 'zip', 'application/zip' ), 524 array( 'mid', 'audio/midi' ), 525 array( 'midi', 'audio/midi' ), 526 array( 'kar', 'audio/midi' ), 527 array( 'mpga', 'audio/mpeg' ), 528 array( 'mp2', 'audio/mpeg' ), 529 array( 'mp3', 'audio/mpeg' ), 530 array( 'ra', 'audio/x-realaudio' ), 531 array( 'pdb', 'chemical/x-pdb' ), 532 array( 'xyz', 'chemical/x-pdb' ), 533 array( 'gif', 'image/gif' ), 534 array( 'ief', 'image/ief' ), 535 array( 'jpg', 'image/jpeg' ), 536 array( 'jpeg', 'image/jpeg' ), 537 array( 'jpe', 'image/jpeg' ), 538 array( 'png', 'image/png' ), 539 array( 'tif', 'image/tiff' ), 540 array( 'tiff', 'image/tiff' ), 541 array( 'pcx', 'image/x-pcx' ), 542 543 // XML media types as defined in RFC 3023 544 array( 'xml', 'text/xml' ), 545 array( 'svg', 'image/svg+xml' ), 546 array( 'svgz', 'image/svg+xml' ), 547 array( 'ent', 'application/xml-external-parsed-entity' ), 548 array( 'dtd', 'application/xml-dtd' ), 549 array( 'mod', 'application/xml-dtd' ), 550 array( 'xsl', 'application/xslt+xml' ), 551 array( 'xslt', 'application/xslt+xml' ), 552 array( 'rdf', 'application/rdf+xml' ), 553 array( 'mml', 'application/mathml+xml' ), 554 555 array( 'wbmp', 'image/vnd.wap.wbmp' ), 556 array( 'ras', 'image/x-cmu-raster' ), 557 array( 'pnm', 'image/x-portable-anymap' ), 558 array( 'pbm', 'image/x-portable-bitmap' ), 559 array( 'pgm', 'image/x-portable-graymap' ), 560 array( 'ppm', 'image/x-portable-pixmap' ), 561 array( 'rgb', 'image/x-rgb' ), 562 array( 'xbm', 'image/x-xbitmap' ), 563 array( 'xpm', 'image/x-xpixmap' ), 564 array( 'xwd', 'image/x-xwindowdump' ), 565 array( 'bmp', 'image/bmp' ), 566 array( 'pict', 'image/x-pict' ), 567 array( 'pct', 'image/x-pict' ), 568 array( 'tga', 'image/tga' ), 569 array( 'xcf', 'image/x-xcf-gimp' ), 570 array( 'psd', 'application/x-photoshop' ), 571 array( 'igs', 'model/iges' ), 572 array( 'iges', 'model/iges' ), 573 array( 'msh', 'model/mesh' ), 574 array( 'mesh', 'model/mesh' ), 575 array( 'silo', 'model/mesh' ), 576 array( 'wrl', 'model/vrml' ), 577 array( 'vrml', 'model/vrml' ), 578 array( 'css', 'text/css' ), 579 array( 'txt', 'text/plain' ), 580 array( 'asc', 'text/plain' ), 581 array( 'rtx', 'text/richtext' ), 582 array( 'rtf', 'text/rtf' ), 583 array( 'sgml', 'text/sgml' ), 584 array( 'sgm', 'text/sgml' ), 585 array( 'tsv', 'text/tab-separated-values' ), 586 array( 'sl', 'text/vnd.wap.sl' ), 587 array( 'si', 'text/vnd.wap.si' ), 588 array( 'wml', 'text/vnd.wap.wml' ), 589 array( 'wmls', 'text/vnd.wap.wmlscript' ), 590 array( 'etx', 'text/x-setext' ), 591 array( 'mpeg', 'video/mpeg' ), 592 array( 'mpg', 'video/mpeg' ), 593 array( 'mpe', 'video/mpeg' ), 594 array( 'mov', 'video/quicktime' ), 595 array( 'qt', 'video/quicktime' ), 596 array( 'avi', 'video/x-msvideo' ), 597 array( 'movie', 'video/x-sgi-movie' ), 598 array( 'ice', 'x-conference/x-cooltalk' ), 599 array( 'rmm', 'audio/x-pn-realaudio' ), 600 array( 'ram', 'audio/x-pn-realaudio' ), 601 array( 'ra', 'audio/vnd.rn-realaudio' ), 602 array( 'smi', 'application/smil' ), 603 array( 'smil', 'application/smil' ), 604 array( 'rt', 'text/vnd.rn-realtext' ), 605 array( 'rv', 'video/vnd.rn-realvideo' ), 606 array( 'rf', 'image/vnd.rn-realflash' ), 607 array( 'swf', 'image/vnd.rn-realflash' ), 608 array( 'rf', 'application/x-shockwave-flash2-preview' ), 609 array( 'swf', 'application/x-shockwave-flash2-preview' ), 610 array( 'flv', 'video/x-flv' ), 611 array( 'sdp', 'application/sdp' ), 612 array( 'sdp', 'application/x-sdp' ), 613 array( 'rm', 'application/vnd.rn-realmedia' ), 614 array( 'rp', 'image/vnd.rn-realpix' ), 615 array( 'wav', 'audio/wav' ), 616 array( 'wav', 'audio/x-wav' ), 617 array( 'wav', 'audio/x-pn-wav' ), 618 array( 'wav', 'audio/x-pn-windows-acm' ), 619 array( 'au', 'audio/basic' ), 620 array( 'au', 'audio/x-pn-au' ), 621 array( 'aiff', 'audio/aiff' ), 622 array( 'af', 'audio/aiff' ), 623 array( 'aiff', 'audio/x-aiff' ), 624 array( 'af', 'audio/x-aiff' ), 625 array( 'aiff', 'audio/x-pn-aiff' ), 626 array( 'af', 'audio/x-pn-aiff' ), 627 array( 'html', 'text/html' ), 628 array( 'htm', 'text/html' ), 629 array( 'sxw', 'application/vnd.sun.xml.writer' ), 630 array( 'sxc', 'application/vnd.sun.xml.calc' ), 631 array( 'sxi', 'application/vnd.sun.xml.impress' ), 632 array( 'odt', 'application/vnd.oasis.opendocument.text' ), 633 array( 'ods', 'application/vnd.oasis.opendocument.spreadsheet' ), 634 array( 'odp', 'application/vnd.oasis.opendocument.presentation' ), 635 array( 'odg', 'application/vnd.oasis.opendocument.graphics' ), 636 array( 'odc', 'application/vnd.oasis.opendocument.chart' ), 637 array( 'odf', 'application/vnd.oasis.opendocument.formula' ), 638 array( 'odb', 'application/vnd.oasis.opendocument.database' ), 639 array( 'odi', 'application/vnd.oasis.opendocument.image' ), 640 array( 'odm', 'application/vnd.oasis.opendocument.text-master' ), 641 array( 'ott', 'application/vnd.oasis.opendocument.text-template' ), 642 array( 'ots', 'application/vnd.oasis.opendocument.spreadsheet-template' ), 643 array( 'otp', 'application/vnd.oasis.opendocument.presentation-template' ), 644 array( 'otg', 'application/vnd.oasis.opendocument.graphics-template' ), 645 array( 'asf', 'video/x-ms-asf' ), 646 array( 'wmv', 'video/x-ms-wmv' ) 647 ); 648 } 649 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sat Feb 24 10:30:04 2007 | par Balluche grâce à PHPXref 0.7 |