<?php
|
|
namespace p3k\XRay;
|
|
|
|
class MediaType {
|
|
|
|
public $type;
|
|
public $subtype;
|
|
public $format;
|
|
public $charset;
|
|
|
|
// Parse a media type into component parts: type, subtype, format, charset
|
|
// e.g. "application/json" => type: application, subtype: json, format: json
|
|
// "application/ld+json" => type: application, subtype: "ld+json", format: json
|
|
public function __construct($string) {
|
|
if(strstr($string, ';')) {
|
|
list($type, $parameters) = explode(';', $string, 2);
|
|
|
|
$parameters = explode(';', $parameters);
|
|
foreach($parameters as $p) {
|
|
list($k, $v) = explode('=', trim($p));
|
|
if($k == 'charset')
|
|
$this->charset = $v;
|
|
}
|
|
} else {
|
|
$type = $string;
|
|
}
|
|
|
|
list($type, $subtype) = explode('/', $type);
|
|
|
|
$this->type = $type;
|
|
$this->subtype = $subtype;
|
|
$this->format = $subtype;
|
|
|
|
if(strstr($subtype, '+')) {
|
|
list($a, $b) = explode('+', $subtype, 2);
|
|
$this->format = $b;
|
|
}
|
|
}
|
|
|
|
}
|