<?php
/**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
return $m;
}
+ /**
+ * Return file extension for mime type
+ * @param string $mimetype
+ * @return string
+ */
+ public static function getExtensionByMimeType(string $mimetype): string
+ {
+ switch ($mimetype) {
+ case 'image/png':
+ $imagetype = IMAGETYPE_PNG;
+ break;
+
+ case 'image/gif':
+ $imagetype = IMAGETYPE_GIF;
+ break;
+
+ default:
+ $imagetype = IMAGETYPE_JPEG;
+ break;
+ }
+
+ return image_type_to_extension($imagetype);
+ }
+
/**
* Returns supported image mimetypes and corresponding file extensions
*
/**
* Fetch image mimetype from the image data or guessing from the file name
*
- * @param string $image_data Image data
- * @param string $filename File name (for guessing the type via the extension)
- * @param string[] $mimeTypes possible mime types
+ * @param string $image_data Image data
+ * @param string $filename File name (for guessing the type via the extension)
+ * @param string $mime default mime type
*
* @return string
* @throws \Exception
*/
- public static function getMimeTypeByData(string $image_data, string $filename = '', array $mimeTypes = [])
+ public static function getMimeTypeByData(string $image_data, string $filename = '', string $mime = '')
{
- foreach ($mimeTypes as $mimeType) {
- if (substr($mimeType, 0, 6) == 'image/') {
- Logger::info('Using default mime type', ['filename' => $filename, 'mime' => $mimeTypes]);
- return $mimeType;
- }
+ if (substr($mime, 0, 6) == 'image/') {
+ Logger::info('Using default mime type', ['filename' => $filename, 'mime' => $mime]);
+ return $mime;
}
$image = @getimagesizefromstring($image_data);
if (!empty($image['mime'])) {
- Logger::info('Mime type detected via data', ['filename' => $filename, 'default' => $mimeTypes, 'mime' => $image['mime']]);
+ Logger::info('Mime type detected via data', ['filename' => $filename, 'default' => $mime, 'mime' => $image['mime']]);
return $image['mime'];
}
return $data;
}
- $data = DI::cache()->get($url);
+ $cacheKey = 'getInfoFromURL:' . sha1($url);
+
+ $data = DI::cache()->get($cacheKey);
if (empty($data) || !is_array($data)) {
$data = self::getInfoFromURL($url);
- DI::cache()->set($url, $data);
+ DI::cache()->set($cacheKey, $data);
}
return $data;
}
if (empty($img_str)) {
- $img_str = DI::httpRequest()->fetch($url, 4);
+ $img_str = DI::httpClient()->fetch($url, 4);
}
if (!$img_str) {