From 4eb986413b3d3b9ac55551d4e3cbd24231f5a4d2 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Sat, 8 Mar 2014 04:05:34 +0100 Subject: [PATCH] Removed PEAR::MIME bundled external library --- extlib/MIME/Type.php | 523 --------------------------------- extlib/MIME/Type/Extension.php | 298 ------------------- extlib/MIME/Type/Parameter.php | 163 ---------- 3 files changed, 984 deletions(-) delete mode 100644 extlib/MIME/Type.php delete mode 100644 extlib/MIME/Type/Extension.php delete mode 100644 extlib/MIME/Type/Parameter.php diff --git a/extlib/MIME/Type.php b/extlib/MIME/Type.php deleted file mode 100644 index c335f8d92d..0000000000 --- a/extlib/MIME/Type.php +++ /dev/null @@ -1,523 +0,0 @@ - | -// +----------------------------------------------------------------------+ -// -// $Id: Type.php,v 1.6 2009/01/16 11:49:45 cweiske Exp $ - -require_once 'PEAR.php'; - -$_fileCmd = &PEAR::getStaticProperty('MIME_Type', 'fileCmd'); -$_fileCmd = 'file'; - -/** - * Class for working with MIME types - * - * @category MIME - * @package MIME_Type - * @license PHP License 3.0 - * @version 1.2.0 - * @link http://pear.php.net/package/MIME_Type - * @author Ian Eure - */ -class MIME_Type -{ - /** - * The MIME media type - * - * @var string - */ - var $media = ''; - - /** - * The MIME media sub-type - * - * @var string - */ - var $subType = ''; - - /** - * Optional MIME parameters - * - * @var array - */ - var $parameters = array(); - - /** - * List of valid media types. - * A media type is the string in front of the slash. - * The media type of "text/xml" would be "text". - * - * @var array - */ - var $validMediaTypes = array( - 'text', - 'image', - 'audio', - 'video', - 'application', - 'multipart', - 'message' - ); - - - /** - * Constructor. - * - * If $type is set, if will be parsed and the appropriate class vars set. - * If not, you get an empty class. - * This is useful, but not quite as useful as parsing a type. - * - * @param string $type MIME type - * - * @return void - */ - function MIME_Type($type = false) - { - if ($type) { - $this->parse($type); - } - } - - - /** - * Parse a mime-type and set the class variables. - * - * @param string $type MIME type to parse - * - * @return void - */ - function parse($type) - { - $this->media = $this->getMedia($type); - $this->subType = $this->getSubType($type); - $this->parameters = array(); - if (MIME_Type::hasParameters($type)) { - require_once 'MIME/Type/Parameter.php'; - foreach (MIME_Type::getParameters($type) as $param) { - $param = new MIME_Type_Parameter($param); - $this->parameters[$param->name] = $param; - } - } - } - - - /** - * Does this type have any parameters? - * - * @param string $type MIME type to check - * - * @return boolean true if $type has parameters, false otherwise - * @static - */ - function hasParameters($type) - { - if (strstr($type, ';')) { - return true; - } - return false; - } - - - /** - * Get a MIME type's parameters - * - * @param string $type MIME type to get parameters of - * - * @return array $type's parameters - * @static - */ - function getParameters($type) - { - $params = array(); - $tmp = explode(';', $type); - for ($i = 1; $i < count($tmp); $i++) { - $params[] = trim($tmp[$i]); - } - return $params; - } - - - /** - * Strip parameters from a MIME type string. - * - * @param string $type MIME type string - * - * @return string MIME type with parameters removed - * @static - */ - function stripParameters($type) - { - if (strstr($type, ';')) { - return substr($type, 0, strpos($type, ';')); - } - return $type; - } - - - /** - * Removes comments from a media type, subtype or parameter. - * - * @param string $string String to strip comments from - * @param string &$comment Comment is stored in there. - * - * @return string String without comments - * @static - */ - function stripComments($string, &$comment) - { - if (strpos($string, '(') === false) { - return $string; - } - - $inquote = false; - $quoting = false; - $incomment = 0; - $newstring = ''; - - for ($n = 0; $n < strlen($string); $n++) { - if ($quoting) { - if ($incomment == 0) { - $newstring .= $string[$n]; - } else if ($comment !== null) { - $comment .= $string[$n]; - } - $quoting = false; - } else if ($string[$n] == '\\') { - $quoting = true; - } else if (!$inquote && $incomment > 0 && $string[$n] == ')') { - $incomment--; - if ($incomment == 0 && $comment !== null) { - $comment .= ' '; - } - } else if (!$inquote && $string[$n] == '(') { - $incomment++; - } else if ($string[$n] == '"') { - if ($inquote) { - $inquote = false; - } else { - $inquote = true; - } - } else if ($incomment == 0) { - $newstring .= $string[$n]; - } else if ($comment !== null) { - $comment .= $string[$n]; - } - } - - if ($comment !== null) { - $comment = trim($comment); - } - - return $newstring; - } - - - /** - * Get a MIME type's media - * - * @note 'media' refers to the portion before the first slash - * - * @param string $type MIME type to get media of - * - * @return string $type's media - * @static - */ - function getMedia($type) - { - $tmp = explode('/', $type); - return strtolower(trim(MIME_Type::stripComments($tmp[0], $null))); - } - - - /** - * Get a MIME type's subtype - * - * @param string $type MIME type to get subtype of - * - * @return string $type's subtype, null if invalid mime type - * @static - */ - function getSubType($type) - { - $tmp = explode('/', $type); - if (!isset($tmp[1])) { - return null; - } - $tmp = explode(';', $tmp[1]); - return strtolower(trim(MIME_Type::stripComments($tmp[0], $null))); - } - - - /** - * Create a textual MIME type from object values - * - * This function performs the opposite function of parse(). - * - * @return string MIME type string - */ - function get() - { - $type = strtolower($this->media . '/' . $this->subType); - if (count($this->parameters)) { - foreach ($this->parameters as $key => $null) { - $type .= '; ' . $this->parameters[$key]->get(); - } - } - return $type; - } - - - /** - * Is this type experimental? - * - * @note Experimental types are denoted by a leading 'x-' in the media or - * subtype, e.g. text/x-vcard or x-world/x-vrml. - * - * @param string $type MIME type to check - * - * @return boolean true if $type is experimental, false otherwise - * @static - */ - function isExperimental($type) - { - if (substr(MIME_Type::getMedia($type), 0, 2) == 'x-' || - substr(MIME_Type::getSubType($type), 0, 2) == 'x-') { - return true; - } - return false; - } - - - /** - * Is this a vendor MIME type? - * - * @note Vendor types are denoted with a leading 'vnd. in the subtype. - * - * @param string $type MIME type to check - * - * @return boolean true if $type is a vendor type, false otherwise - * @static - */ - function isVendor($type) - { - if (substr(MIME_Type::getSubType($type), 0, 4) == 'vnd.') { - return true; - } - return false; - } - - - /** - * Is this a wildcard type? - * - * @param string $type MIME type to check - * - * @return boolean true if $type is a wildcard, false otherwise - * @static - */ - function isWildcard($type) - { - if ($type == '*/*' || MIME_Type::getSubtype($type) == '*') { - return true; - } - return false; - } - - - /** - * Perform a wildcard match on a MIME type - * - * Example: - * MIME_Type::wildcardMatch('image/*', 'image/png') - * - * @param string $card Wildcard to check against - * @param string $type MIME type to check - * - * @return boolean true if there was a match, false otherwise - * @static - */ - function wildcardMatch($card, $type) - { - if (!MIME_Type::isWildcard($card)) { - return false; - } - - if ($card == '*/*') { - return true; - } - - if (MIME_Type::getMedia($card) == MIME_Type::getMedia($type)) { - return true; - } - - return false; - } - - - /** - * Add a parameter to this type - * - * @param string $name Attribute name - * @param string $value Attribute value - * @param string $comment Comment for this parameter - * - * @return void - */ - function addParameter($name, $value, $comment = false) - { - $tmp = new MIME_Type_Parameter(); - - $tmp->name = $name; - $tmp->value = $value; - $tmp->comment = $comment; - $this->parameters[$name] = $tmp; - } - - - /** - * Remove a parameter from this type - * - * @param string $name Parameter name - * - * @return void - */ - function removeParameter($name) - { - unset($this->parameters[$name]); - } - - - /** - * Autodetect a file's MIME-type - * - * This function may be called staticly. - * - * @internal Tries to use fileinfo extension at first. If that - * does not work, mime_magic is used. If this is also not available - * or does not succeed, "file" command is tried to be executed with - * System_Command. When that fails, too, then we use our in-built - * extension-to-mimetype-mapping list. - * - * @param string $file Path to the file to get the type of - * @param bool $params Append MIME parameters if true - * - * @return string $file's MIME-type on success, PEAR_Error otherwise - * - * @since 1.0.0beta1 - * @static - */ - function autoDetect($file, $params = false) - { - // Sanity checks - if (!file_exists($file)) { - return PEAR::raiseError("File \"$file\" doesn't exist"); - } - - if (!is_readable($file)) { - return PEAR::raiseError("File \"$file\" is not readable"); - } - - if (function_exists('finfo_file')) { - $finfo = finfo_open(FILEINFO_MIME); - $type = finfo_file($finfo, $file); - finfo_close($finfo); - if ($type !== false && $type !== '') { - return MIME_Type::_handleDetection($type, $params); - } - } - - if (function_exists('mime_content_type')) { - $type = mime_content_type($file); - if ($type !== false && $type !== '') { - return MIME_Type::_handleDetection($type, $params); - } - } - - @include_once 'System/Command.php'; - if (class_exists('System_Command')) { - return MIME_Type::_handleDetection( - MIME_Type::_fileAutoDetect($file), - $params - ); - } - - require_once 'MIME/Type/Extension.php'; - $mte = new MIME_Type_Extension(); - return $mte->getMIMEType($file); - } - - - /** - * Handles a detected MIME type and modifies it if necessary. - * - * @param string $type MIME Type of a file - * @param bool $params Append MIME parameters if true - * - * @return string $file's MIME-type on success, PEAR_Error otherwise - */ - function _handleDetection($type, $params) - { - // _fileAutoDetect() may have returned an error. - if (PEAR::isError($type)) { - return $type; - } - - // Don't return an empty string - if (!$type || !strlen($type)) { - return PEAR::raiseError("Sorry, couldn't determine file type."); - } - - // Strip parameters if present & requested - if (MIME_Type::hasParameters($type) && !$params) { - $type = MIME_Type::stripParameters($type); - } - - return $type; - } - - - /** - * Autodetect a file's MIME-type with 'file' and System_Command - * - * This function may be called staticly. - * - * @param string $file Path to the file to get the type of - * - * @return string $file's MIME-type - * - * @since 1.0.0beta1 - * @static - */ - function _fileAutoDetect($file) - { - $cmd = new System_Command(); - - // Make sure we have the 'file' command. - $fileCmd = PEAR::getStaticProperty('MIME_Type', 'fileCmd'); - if (!$cmd->which($fileCmd)) { - unset($cmd); - return PEAR::raiseError("Can't find file command \"{$fileCmd}\""); - } - - $cmd->pushCommand($fileCmd, "-bi " . escapeshellarg($file)); - $res = $cmd->execute(); - unset($cmd); - - return $res; - } -} - diff --git a/extlib/MIME/Type/Extension.php b/extlib/MIME/Type/Extension.php deleted file mode 100644 index 1987e2a10e..0000000000 --- a/extlib/MIME/Type/Extension.php +++ /dev/null @@ -1,298 +0,0 @@ - | -// +----------------------------------------------------------------------+ -// -// $Id: Extension.php,v 1.1 2009/01/16 11:49:45 cweiske Exp $ - -require_once 'PEAR.php'; - -/** - * Class for mapping file extensions to MIME types. - * - * @category MIME - * @package MIME_Type - * @author Christian Schmidt - * @license PHP License 3.0 - * @version 1.2.0 - * @link http://pear.php.net/package/MIME_Type - */ -class MIME_Type_Extension -{ - /** - * Mapping between file extension and MIME type. - * - * @internal The array is sorted alphabetically by value and with primary - * extension first. Be careful about not adding duplicate keys - PHP - * silently ignores duplicates. The following command can be used for - * checking for duplicates: - * grep "=> '" Extension.php | cut -d\' -f2 | sort | uniq -d - * application/octet-stream is generally used as fallback when no other - * MIME-type can be found, but the array does not contain a lot of such - * unknown extension. One entry exists, though, to allow detection of - * file extension for this MIME-type. - * - * @var array - */ - var $extensionToType = array ( - 'ez' => 'application/andrew-inset', - 'atom' => 'application/atom+xml', - 'jar' => 'application/java-archive', - 'hqx' => 'application/mac-binhex40', - 'cpt' => 'application/mac-compactpro', - 'mathml' => 'application/mathml+xml', - 'doc' => 'application/msword', - 'dat' => 'application/octet-stream', - 'oda' => 'application/oda', - 'ogg' => 'application/ogg', - 'pdf' => 'application/pdf', - 'ai' => 'application/postscript', - 'eps' => 'application/postscript', - 'ps' => 'application/postscript', - 'rdf' => 'application/rdf+xml', - 'rss' => 'application/rss+xml', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'gram' => 'application/srgs', - 'grxml' => 'application/srgs+xml', - 'kml' => 'application/vnd.google-earth.kml+xml', - 'kmz' => 'application/vnd.google-earth.kmz', - 'mif' => 'application/vnd.mif', - 'xul' => 'application/vnd.mozilla.xul+xml', - 'xls' => 'application/vnd.ms-excel', - 'xlb' => 'application/vnd.ms-excel', - 'xlt' => 'application/vnd.ms-excel', - 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12', - 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', - 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12', - 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12', - 'docm' => 'application/vnd.ms-word.document.macroEnabled.12', - 'dotm' => 'application/vnd.ms-word.template.macroEnabled.12', - 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12', - 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', - 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', - 'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12', - 'ppt' => 'application/vnd.ms-powerpoint', - 'pps' => 'application/vnd.ms-powerpoint', - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'odb' => 'application/vnd.oasis.opendocument.database', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'otg' => 'application/vnd.oasis.opendocument.graphics-template', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'otp' => 'application/vnd.oasis.opendocument.presentation-template', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - 'oth' => 'application/vnd.oasis.opendocument.text-web', - 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'vsd' => 'application/vnd.visio', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'wmlsc' => 'application/vnd.wap.wmlscriptc', - 'vxml' => 'application/voicexml+xml', - 'bcpio' => 'application/x-bcpio', - 'vcd' => 'application/x-cdlink', - 'pgn' => 'application/x-chess-pgn', - 'cpio' => 'application/x-cpio', - 'csh' => 'application/x-csh', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'dxr' => 'application/x-director', - 'dvi' => 'application/x-dvi', - 'spl' => 'application/x-futuresplash', - 'tgz' => 'application/x-gtar', - 'gtar' => 'application/x-gtar', - 'hdf' => 'application/x-hdf', - 'js' => 'application/x-javascript', - 'skp' => 'application/x-koan', - 'skd' => 'application/x-koan', - 'skt' => 'application/x-koan', - 'skm' => 'application/x-koan', - 'latex' => 'application/x-latex', - 'nc' => 'application/x-netcdf', - 'cdf' => 'application/x-netcdf', - 'sh' => 'application/x-sh', - 'shar' => 'application/x-shar', - 'swf' => 'application/x-shockwave-flash', - 'sit' => 'application/x-stuffit', - 'sv4cpio' => 'application/x-sv4cpio', - 'sv4crc' => 'application/x-sv4crc', - 'tar' => 'application/x-tar', - 'tcl' => 'application/x-tcl', - 'tex' => 'application/x-tex', - 'texinfo' => 'application/x-texinfo', - 'texi' => 'application/x-texinfo', - 't' => 'application/x-troff', - 'tr' => 'application/x-troff', - 'roff' => 'application/x-troff', - 'man' => 'application/x-troff-man', - 'me' => 'application/x-troff-me', - 'ms' => 'application/x-troff-ms', - 'ustar' => 'application/x-ustar', - 'src' => 'application/x-wais-source', - 'xhtml' => 'application/xhtml+xml', - 'xht' => 'application/xhtml+xml', - 'xslt' => 'application/xslt+xml', - 'xml' => 'application/xml', - 'xsl' => 'application/xml', - 'dtd' => 'application/xml-dtd', - 'zip' => 'application/zip', - 'au' => 'audio/basic', - 'snd' => 'audio/basic', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'kar' => 'audio/midi', - 'mpga' => 'audio/mpeg', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'aif' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'm3u' => 'audio/x-mpegurl', - 'wma' => 'audio/x-ms-wma', - 'wax' => 'audio/x-ms-wax', - 'ram' => 'audio/x-pn-realaudio', - 'ra' => 'audio/x-pn-realaudio', - 'rm' => 'application/vnd.rn-realmedia', - 'wav' => 'audio/x-wav', - 'pdb' => 'chemical/x-pdb', - 'xyz' => 'chemical/x-xyz', - 'bmp' => 'image/bmp', - 'cgm' => 'image/cgm', - 'gif' => 'image/gif', - 'ief' => 'image/ief', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'jpe' => 'image/jpeg', - 'png' => 'image/png', - 'svg' => 'image/svg+xml', - 'tiff' => 'image/tiff', - 'tif' => 'image/tiff', - 'djvu' => 'image/vnd.djvu', - 'djv' => 'image/vnd.djvu', - 'wbmp' => 'image/vnd.wap.wbmp', - 'ras' => 'image/x-cmu-raster', - 'ico' => 'image/x-icon', - 'pnm' => 'image/x-portable-anymap', - 'pbm' => 'image/x-portable-bitmap', - 'pgm' => 'image/x-portable-graymap', - 'ppm' => 'image/x-portable-pixmap', - 'rgb' => 'image/x-rgb', - 'xbm' => 'image/x-xbitmap', - 'psd' => 'image/x-photoshop', - 'xpm' => 'image/x-xpixmap', - 'xwd' => 'image/x-xwindowdump', - 'eml' => 'message/rfc822', - 'igs' => 'model/iges', - 'iges' => 'model/iges', - 'msh' => 'model/mesh', - 'mesh' => 'model/mesh', - 'silo' => 'model/mesh', - 'wrl' => 'model/vrml', - 'vrml' => 'model/vrml', - 'ics' => 'text/calendar', - 'ifb' => 'text/calendar', - 'css' => 'text/css', - 'csv' => 'text/csv', - 'html' => 'text/html', - 'htm' => 'text/html', - 'txt' => 'text/plain', - 'asc' => 'text/plain', - 'rtx' => 'text/richtext', - 'rtf' => 'text/rtf', - 'sgml' => 'text/sgml', - 'sgm' => 'text/sgml', - 'tsv' => 'text/tab-separated-values', - 'wml' => 'text/vnd.wap.wml', - 'wmls' => 'text/vnd.wap.wmlscript', - 'etx' => 'text/x-setext', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpe' => 'video/mpeg', - 'qt' => 'video/quicktime', - 'mov' => 'video/quicktime', - 'mxu' => 'video/vnd.mpegurl', - 'm4u' => 'video/vnd.mpegurl', - 'flv' => 'video/x-flv', - 'asf' => 'video/x-ms-asf', - 'asx' => 'video/x-ms-asf', - 'wmv' => 'video/x-ms-wmv', - 'wm' => 'video/x-ms-wm', - 'wmx' => 'video/x-ms-wmx', - 'avi' => 'video/x-msvideo', - 'ogv' => 'video/ogg', - 'movie' => 'video/x-sgi-movie', - 'ice' => 'x-conference/x-cooltalk', - ); - - - - /** - * Autodetect a file's MIME-type. - * - * @param string $file Path to the file to get the type of - * - * @return string $file's MIME-type on success, PEAR_Error otherwise - */ - function getMIMEType($file) - { - $extension = substr(strrchr($file, '.'), 1); - if ($extension === false) { - return PEAR::raiseError("File has no extension."); - } - - if (!isset($this->extensionToType[$extension])) { - return PEAR::raiseError("Sorry, couldn't determine file type."); - } - - return $this->extensionToType[$extension]; - } - - - - /** - * Return default MIME-type for the specified extension. - * - * @param string $type MIME-type - * - * @return string A file extension without leading period. - */ - function getExtension($type) - { - require_once 'MIME/Type.php'; - // Strip parameters and comments. - $type = MIME_Type::getMedia($type) . '/' . MIME_Type::getSubType($type); - - $extension = array_search($type, $this->extensionToType); - if ($extension === false) { - return PEAR::raiseError("Sorry, couldn't determine extension."); - } - return $extension; - } - -} - -?> \ No newline at end of file diff --git a/extlib/MIME/Type/Parameter.php b/extlib/MIME/Type/Parameter.php deleted file mode 100644 index 399d3dd7ad..0000000000 --- a/extlib/MIME/Type/Parameter.php +++ /dev/null @@ -1,163 +0,0 @@ - | -// +----------------------------------------------------------------------+ -// -// $Id: Parameter.php,v 1.1 2007/03/25 10:10:21 cweiske Exp $ - -/** - * Class for working with MIME type parameters - * - * @version 1.2.0 - * @package MIME_Type - * @author Ian Eure - */ -class MIME_Type_Parameter { - /** - * Parameter name - * - * @var string - */ - var $name; - - /** - * Parameter value - * - * @var string - */ - var $value; - - /** - * Parameter comment - * - * @var string - */ - var $comment; - - - /** - * Constructor. - * - * @param string $param MIME parameter to parse, if set. - * @return void - */ - function MIME_Type_Parameter($param = false) - { - if ($param) { - $this->parse($param); - } - } - - - /** - * Parse a MIME type parameter and set object fields - * - * @param string $param MIME type parameter to parse - * @return void - */ - function parse($param) - { - $comment = ''; - $param = MIME_Type::stripComments($param, $comment); - $this->name = $this->getAttribute($param); - $this->value = $this->getValue($param); - $this->comment = $comment; - } - - - /** - * Get a parameter attribute (e.g. name) - * - * @param string MIME type parameter - * @return string Attribute name - * @static - */ - function getAttribute($param) - { - $tmp = explode('=', $param); - return trim($tmp[0]); - } - - - /** - * Get a parameter value - * - * @param string $param MIME type parameter - * @return string Value - * @static - */ - function getValue($param) - { - $tmp = explode('=', $param, 2); - $value = $tmp[1]; - $value = trim($value); - if ($value[0] == '"' && $value[strlen($value)-1] == '"') { - $value = substr($value, 1, -1); - } - $value = str_replace('\\"', '"', $value); - return $value; - } - - - /** - * Get a parameter comment - * - * @param string $param MIME type parameter - * @return string Parameter comment - * @see getComment() - * @static - */ - function getComment($param) - { - $cs = strpos($param, '('); - $comment = substr($param, $cs); - return trim($comment, '() '); - } - - - /** - * Does this parameter have a comment? - * - * @param string $param MIME type parameter - * @return boolean true if $param has a comment, false otherwise - * @static - */ - function hasComment($param) - { - if (strstr($param, '(')) { - return true; - } - return false; - } - - - /** - * Get a string representation of this parameter - * - * This function performs the oppsite of parse() - * - * @return string String representation of parameter - */ - function get() - { - $val = $this->name . '="' . str_replace('"', '\\"', $this->value) . '"'; - if ($this->comment) { - $val .= ' (' . $this->comment . ')'; - } - return $val; - } -} -?> \ No newline at end of file