X-Git-Url: https://git.ao2.it/tweeper.git/blobdiff_plain/75c303bf7c570748a5564de6e266cc40f75b1697..6525c19868a0511abaaac9d2ba452ba640899209:/src/Tweeper.php diff --git a/src/Tweeper.php b/src/Tweeper.php index f79bb08..2d3870f 100644 --- a/src/Tweeper.php +++ b/src/Tweeper.php @@ -234,6 +234,34 @@ class Tweeper { } /** + * Generate a data URL. + */ + public static function generateDataURL($url) { + $supported_content_types = [ + "image/gif", + "image/jpeg", + "image/png", + ]; + + $url_info = Tweeper::getUrlInfo($url); + if (FALSE === $url_info) { + trigger_error("Failed to retrieve info for URL: " . $url, E_USER_WARNING); + return ''; + } + + $supported = in_array($url_info['content_type'], $supported_content_types); + if (!$supported) { + trigger_error("Unsupported data URL type \"" . $url_info['content_type'] . "\" for URL: " . $url_info['url'], E_USER_WARNING); + return ''; + } + + $base64Data = base64_encode(file_get_contents($url)); + $dataURL = 'data: ' . $url_info['content_type'] . ';base64,' . $base64Data; + + return $dataURL; + } + + /** * Mimic the message from libxml.c::php_libxml_ctx_error_level() */ private static function logXmlError($error) {