wp_match_mime_types() – Checks a MIME-Type against a list.

You appear to be a bot. Output may be restricted

Description

Checks a MIME-Type against a list.

If the $wildcard_mime_types parameter is a string, it must be comma separated list. If the $real_mime_types is a string, it is also comma separated to create the list.

Usage

$array = wp_match_mime_types( $wildcard_mime_types, $real_mime_types );

Parameters

$wildcard_mime_types
( string|string[] ) required – Mime types, e.g. audio/mpeg`, `image (same as `image/*`), or flash (same as `*flash*`).
$real_mime_types
( string|string[] ) required – Real post mime type values.

Returns

array array(wildcard=>array(real types)).

Source

File name: wordpress/wp-includes/post.php
Lines:

1 to 41 of 41
function wp_match_mime_types( $wildcard_mime_types, $real_mime_types ) {
  $matches = array();
  if ( is_string( $wildcard_mime_types ) ) {
    $wildcard_mime_types = array_map( 'trim', explode( ',', $wildcard_mime_types ) );
  }
  if ( is_string( $real_mime_types ) ) {
    $real_mime_types = array_map( 'trim', explode( ',', $real_mime_types ) );
  }

  $patternses = array();
  $wild       = '[-._a-z0-9]*';

  foreach ( (array) $wildcard_mime_types as $type ) {
    $mimes = array_map( 'trim', explode( ',', $type ) );
    foreach ( $mimes as $mime ) {
      $regex = str_replace( '__wildcard__', $wild, preg_quote( str_replace( '*', '__wildcard__', $mime ) ) );

      $patternses[][ $type ] = "^$regex$";

      if ( ! str_contains( $mime, '/' ) ) {
        $patternses[][ $type ] = "^$regex/";
        $patternses[][ $type ] = $regex;
      }
    }
  }
  asort( $patternses );

  foreach ( $patternses as $patterns ) {
    foreach ( $patterns as $type => $pattern ) {
      foreach ( (array) $real_mime_types as $real ) {
        if ( preg_match( "#$pattern#", $real )
          && ( empty( $matches[ $type ] ) || false === array_search( $real, $matches[ $type ], true ) )
        ) {
          $matches[ $type ][] = $real;
        }
      }
    }
  }

  return $matches;
}
 

 View on GitHub View on Trac