mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-27 07:00:29 +01:00
121 lines
4.0 KiB
PHP
121 lines
4.0 KiB
PHP
|
<?php
|
||
|
|
||
|
if(!function_exists('mime_content_type')) {
|
||
|
|
||
|
function mime_content_type($filename) {
|
||
|
|
||
|
$mime_types = array(
|
||
|
|
||
|
'txt' => 'text/plain',
|
||
|
'htm' => 'text/html',
|
||
|
'html' => 'text/html',
|
||
|
'php' => 'text/html',
|
||
|
'css' => 'text/css',
|
||
|
'js' => 'application/javascript',
|
||
|
'json' => 'application/json',
|
||
|
'xml' => 'application/xml',
|
||
|
'swf' => 'application/x-shockwave-flash',
|
||
|
'flv' => 'video/x-flv',
|
||
|
|
||
|
// images
|
||
|
'png' => 'image/png',
|
||
|
'jpe' => 'image/jpeg',
|
||
|
'jpeg' => 'image/jpeg',
|
||
|
'jpg' => 'image/jpeg',
|
||
|
'gif' => 'image/gif',
|
||
|
'bmp' => 'image/bmp',
|
||
|
'ico' => 'image/vnd.microsoft.icon',
|
||
|
'tiff' => 'image/tiff',
|
||
|
'tif' => 'image/tiff',
|
||
|
'svg' => 'image/svg+xml',
|
||
|
'svgz' => 'image/svg+xml',
|
||
|
|
||
|
// archives
|
||
|
'zip' => 'application/zip',
|
||
|
'rar' => 'application/x-rar-compressed',
|
||
|
'exe' => 'application/x-msdownload',
|
||
|
'msi' => 'application/x-msdownload',
|
||
|
'cab' => 'application/vnd.ms-cab-compressed',
|
||
|
|
||
|
// audio/video
|
||
|
'mp3' => 'audio/mpeg',
|
||
|
'qt' => 'video/quicktime',
|
||
|
'mov' => 'video/quicktime',
|
||
|
|
||
|
// adobe
|
||
|
'pdf' => 'application/pdf',
|
||
|
'psd' => 'image/vnd.adobe.photoshop',
|
||
|
'ai' => 'application/postscript',
|
||
|
'eps' => 'application/postscript',
|
||
|
'ps' => 'application/postscript',
|
||
|
|
||
|
// ms office
|
||
|
'doc' => 'application/msword',
|
||
|
'rtf' => 'application/rtf',
|
||
|
'xls' => 'application/vnd.ms-excel',
|
||
|
'ppt' => 'application/vnd.ms-powerpoint',
|
||
|
|
||
|
// open office
|
||
|
'odt' => 'application/vnd.oasis.opendocument.text',
|
||
|
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
|
||
|
);
|
||
|
|
||
|
$ext = strtolower(array_pop(explode('.',$filename)));
|
||
|
if (array_key_exists($ext, $mime_types)) {
|
||
|
return $mime_types[$ext];
|
||
|
}
|
||
|
elseif (function_exists('finfo_open')) {
|
||
|
$finfo = finfo_open(FILEINFO_MIME);
|
||
|
$mimetype = finfo_file($finfo, $filename);
|
||
|
finfo_close($finfo);
|
||
|
return $mimetype;
|
||
|
}
|
||
|
else {
|
||
|
return 'application/octet-stream';
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if(!function_exists('mb_str_replace')){
|
||
|
/**
|
||
|
* Replace all occurrences of the search string with the replacement string.
|
||
|
*
|
||
|
* @param mixed $search
|
||
|
* @param mixed $replace
|
||
|
* @param mixed $subject
|
||
|
* @param int $count
|
||
|
*
|
||
|
* @return mixed
|
||
|
*
|
||
|
* @author Sean Murphy <sean@iamseanmurphy.com>
|
||
|
* @copyright Copyright 2012 Sean Murphy. All rights reserved.
|
||
|
* @license http://creativecommons.org/publicdomain/zero/1.0/
|
||
|
* @link http://php.net/manual/function.str-replace.php
|
||
|
* @link https://gist.github.com/sgmurphy/3098836
|
||
|
*/
|
||
|
function mb_str_replace($search, $replace, $subject, &$count = 0)
|
||
|
{
|
||
|
if(!is_array($subject)){
|
||
|
// Normalize $search and $replace so they are both arrays of the same length
|
||
|
$searches = is_array($search) ? array_values($search) : array($search);
|
||
|
$replacements = is_array($replace) ? array_values($replace) : array($replace);
|
||
|
$replacements = array_pad($replacements, count($searches), '');
|
||
|
|
||
|
foreach ($searches as $key => $search) {
|
||
|
$parts = mb_split(preg_quote($search), $subject);
|
||
|
$count += count($parts) - 1;
|
||
|
$subject = implode($replacements[$key], $parts);
|
||
|
}
|
||
|
}else{
|
||
|
// Call mb_str_replace for each subject in array, recursively
|
||
|
foreach ($subject as $key => $value) {
|
||
|
$subject[$key] = mb_str_replace($search, $replace, $value, $count);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $subject;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
?>
|