public static function parseMediaType(string $rawMediaType): array
    {
        preg_match(self::PATTERN_SPLITMEDIATYPE, $rawMediaType, $matches);
        $result = [];
        $result['type'] = $matches['type'] ?? '';
        $result['subtype'] = $matches['subtype'] ?? '';
        $result['parameters'] = [];

        if (isset($matches['parameters'])) {
            foreach (Arrays::trimExplode(';', $matches['parameters']) as $parameter) {
                $pieces = explode('=', $parameter);
                if (count($pieces) === 2) {
                    $name = trim($pieces[0]);
                    $result['parameters'][$name] = trim($pieces[1]);
                }
            }
        }
        return $result;
    }
public static function parseMediaType(string $rawMediaType): array
    {
        preg_match(self::PATTERN_SPLITMEDIATYPE, $rawMediaType, $matches);
        $result = [];
        $result['type'] = $matches['type'] ?? '';
        $result['subtype'] = $matches['subtype'] ?? '';
        $result['parameters'] = [];

        if (isset($matches['parameters'])) {
            foreach (Arrays::trimExplode(';', $matches['parameters']) as $parameter) {
                $pieces = explode('=', $parameter);
                if (count($pieces) === 2) {
                    $name = trim($pieces[0]);
                    $result['parameters'][$name] = trim($pieces[1]);
                }
            }
        }
        return $result;
    }
public static function parseMediaType ( string $ rawMediaType ) : array { preg_match ( self :: PATTERN_SPLITMEDIATYPE , $ rawMediaType , $ matches ) ; $ result = [ ] ; $ result [ 'type' ] = $ matches [ 'type' ] ?? '' ; $ result [ 'subtype' ] = $ matches [ 'subtype' ] ?? '' ; $ result [ 'parameters' ] = [ ] ; if ( isset ( $ matches [ 'parameters' ] ) ) { foreach ( Arrays :: trimExplode ( ';' , $ matches [ 'parameters' ] ) as $ parameter ) { $ pieces = explode ( '=' , $ parameter ) ; if ( count ( $ pieces ) === 2 ) { $ name = trim ( $ pieces [ 0 ] ) ; $ result [ 'parameters' ] [ $ name ] = trim ( $ pieces [ 1 ] ) ; } } } return $ result ; }
Parses a RFC 2616 Media Type and returns its parts in an associative array.

media-type = type "/" subtype *( ";" parameter)

The media type "text/html; charset=UTF-8" would be parsed and returned with
the following array keys and values:

"type" => the type as a string, "text"
"subtype" => the subtype as a string, "html"
"parameters" => an array of parameter names and values, array("charset" => "UTF-8")

@param string $rawMediaType The raw media type, for example "application/json; charset=UTF-8"
@return array An associative array with parsed information
Parses a RFC 2616 Media Type and returns its parts in an associative array .