X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/282f57032bbdd426cbdb4e03ad7379e3825befe6..52de444faa10f37c4174e9fe2c75e77484342549:/src/phorkie/File.php diff --git a/src/phorkie/File.php b/src/phorkie/File.php index 188c255..7f5b5b4 100644 --- a/src/phorkie/File.php +++ b/src/phorkie/File.php @@ -80,11 +80,11 @@ class File if (isset($GLOBALS['phorkie']['languages'][$ext]['renderer'])) { $class = $GLOBALS['phorkie']['languages'][$ext]['renderer']; + } else if ($this->isText()) { + $class = '\\phorkie\\Renderer_Geshi'; } else if (isset($GLOBALS['phorkie']['languages'][$ext]['mime'])) { $type = $GLOBALS['phorkie']['languages'][$ext]['mime']; - if (substr($type, 0, 5) == 'text/') { - $class = '\\phorkie\\Renderer_Geshi'; - } else if (substr($type, 0, 6) == 'image/') { + if (substr($type, 0, 6) == 'image/') { $class = '\\phorkie\\Renderer_Image'; } } @@ -118,6 +118,9 @@ class File throw new Exception('Unknown type'); } + /** + * @return string Mime type of file + */ public function getMimeType() { $ext = $this->getExt(); @@ -148,13 +151,21 @@ class File public function isText() { $ext = $this->getExt(); + if ($ext == '') { + //no file extension? then consider the size + $size = filesize($this->getFullPath()); + //files <= 4kiB are considered to be text + return $size <= 4096; + } + if (!isset($GLOBALS['phorkie']['languages'][$ext]['mime'])) { return false; } $type = $GLOBALS['phorkie']['languages'][$ext]['mime']; - return substr($type, 0, 5) === 'text/'; + return substr($type, 0, 5) === 'text/' + || $type == 'application/javascript'; } } -?> \ No newline at end of file +?>