[ Index ]
 

Code source de eZ Publish 3.9.0

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/lib/ezutils/classes/ -> ezmimetype.php (source)

   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  ?>


Généré le : Sat Feb 24 10:30:04 2007 par Balluche grâce à PHPXref 0.7