aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/Mime.php
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Mime.php')
-rw-r--r--srcs/phpmyadmin/libraries/classes/Mime.php41
1 files changed, 41 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Mime.php b/srcs/phpmyadmin/libraries/classes/Mime.php
new file mode 100644
index 0000000..75b9eac
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Mime.php
@@ -0,0 +1,41 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * MIME detection code.
+ *
+ * @package PhpMyAdmin
+ * @todo Maybe we could try to use fileinfo module if loaded
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin;
+
+/**
+ * PhpMyAdmin\Mime class;
+ *
+ * @package PhpMyAdmin
+ */
+class Mime
+{
+ /**
+ * Tries to detect MIME type of content.
+ *
+ * @param string $test First few bytes of content to use for detection
+ *
+ * @return string
+ */
+ public static function detect(&$test)
+ {
+ $len = mb_strlen($test);
+ if ($len >= 2 && $test[0] == chr(0xff) && $test[1] == chr(0xd8)) {
+ return 'image/jpeg';
+ }
+ if ($len >= 3 && substr($test, 0, 3) == 'GIF') {
+ return 'image/gif';
+ }
+ if ($len >= 4 && mb_substr($test, 0, 4) == "\x89PNG") {
+ return 'image/png';
+ }
+ return 'application/octet-stream';
+ }
+}