<?php
/**
* Информация о типах файлов
*/
abstract class files_types {
/**
* Получение информации о типах файлов
* @staticvar array $ini
* @return array
*/
protected static function _getIni() {
static $ini = null;
if ($ini === null)
$ini = ini::read(H . '/sys/ini/files.types.ini', true);
return $ini;
}
/**
* Обработчик для получения описания файла
* @param type $path
* @return type
*/
public static function getPropertiesType($path) {
$pinfo = pathinfo(strtolower($path));
$ini = self::_getIni();
if (!empty($pinfo['extension']) && !empty($ini[$pinfo['extension']]['prop']))
return $ini[$pinfo['extension']]['prop'];
}
/**
* Обработчик получения скриншота
* @param type $path
* @return type
*/
public static function getScreenType($path) {
$pinfo = pathinfo(strtolower($path));
$ini = self::_getIni();
if (!empty($pinfo['extension']) && !empty($ini[$pinfo['extension']]['screen']))
return $ini[$pinfo['extension']]['screen'];
}
/**
* получение иконки
* @param type $path
* @return string
*/
public static function getIconType($path) {
$pinfo = pathinfo(strtolower($path));
$ini = self::_getIni();
if (!empty($pinfo['extension']) && !empty($ini[$pinfo['extension']]['icon']))
return $ini[$pinfo['extension']]['icon'];
return 'file';
}
/**
* получение mime-типа файла по расширению
* @param type $filename
* @return string
*/
public static function get_mime($filename) {
switch (pathinfo($filename, PATHINFO_EXTENSION)) {
case 'php':return 'text/plain';
case 'txt':return 'text/plain';
case 'emy':return 'text/x-vmel';
case 'mel':return 'text/x-vmel';
case 'jad':return 'text/vnd.sun.j2me.app-descriptor';
// приложения
case 'jar':return 'application/java-archive';
case 'thm':return 'application/vnd.eri.thm';
case 'mpn':return 'application/vnd.mophun.application';
case 'mpc':return 'application/vnd.mophun.certificate';
case 'sis':return 'application/vnd.symbian.install';
// архивы
case 'zip':return 'application/x-zip-compressed';
case 'rar':return 'application/x-rar-compressed';
case '7z':return 'application/x-7z-compressed';
case 'gz':return 'application/x-gzip';
case 'hid':return 'application/x-tar';
case 'tar':return 'application/x-tar';
// звуки и музыка
case 'imy':return 'audio/imelody';
case 'mmf':return 'application/vnd.smaf';
case 'amr':return 'audio/amr';
case 'wav':return 'audio/x-wav';
case 'mp3':return 'audio/mpeg';
case 'wav':return 'audio/wav';
case 'midi':return 'audio/midi';
case 'mid':return 'audio/midi';
case 'rmf':return 'audio/rmf';
// видео
case 'flv':return 'video/flv';
case 'mp4':return 'video/mp4';
case '3gp':return 'video/3gpp';
case '3gpp':return 'video/3gpp';
// изображения
case 'jpg':return 'image/jpeg';
case 'jpeg':return 'image/jpeg';
case 'gif':return 'image/gif';
case 'png':return 'image/png';
case 'bmp':return 'image/bmp';
case 'tiff':return 'image/tiff';
case 'tif':return 'image/tiff';
}
return 'application/octet-stream';
}
}
?>