function DetectImage($uri) { // get image info $info = getimagesize($uri); // valid mime type if (empty($info['mime'])) { DefaultImage(); } // get mime type $mime = $info['mime']; // detect image type 'png' if (preg_match('/png/im', $mime)) { $send = imagecreatefrompng($uri); } // detect image type 'jpg or jpeg' if (preg_match('/jpg|jpeg/im', $mime)) { $send = imagecreatefromjpeg($uri); } // detect image type 'gif' if (preg_match('/gif/im', $mime)) { $send = imagecreatefromgif($uri); } // valid new image created if (empty($send)) { DefaultImage(); } // callback return $send; }
function DetectImage($uri, $local = 0) { global $filterImage; if ($filterImage) { $exif_types = array(IMAGETYPE_GIF => 'image/gif', IMAGETYPE_JPEG => 'image/jpeg', IMAGETYPE_PNG => 'image/png'); $use_exif = function_exists('exif_imagetype'); // get image info $mime = $use_exif && ($a = @exif_imagetype($uri)) && isset($exif_types[$a]) ? $exif_types[$a] : (($a = @getimagesize($uri)) ? $a['mime'] : null); // valid mime type if (empty($mime) or !preg_match('/(jpeg|jpg|gif|png)$/', $mime)) { DefaultImage(); } // detect image type 'png' if (image_type_to_mime_type(IMAGETYPE_PNG) === $mime) { $send = imagecreatefrompng($uri); } // detect image type 'jpeg' if (image_type_to_mime_type(IMAGETYPE_JPEG) === $mime) { $send = imagecreatefromjpeg($uri); } // detect image type 'gif' if (image_type_to_mime_type(IMAGETYPE_GIF) === $mime) { $send = imagecreatefromgif($uri); } } // detect image from string if ($local) { $send = imagecreatefromstring(file_get_contents($uri)); } elseif (empty($send) && ($content = curl_file_get_contents($uri))) { $send = imagecreatefromstring($content['content']); } // valid new image created if (empty($send) or !is_resource($send)) { DefaultImage(); } // callback return $send; }
if (FileCacheIsLive($src, $ttl)) { SendImageFromCache($src); } } if ($validRemote and !CheckRemoteFile($handle)) { DefaultImage(); } CreateImageToCache($handle, $thumb_w, $thumb_h, $back, $opt, $src); } elseif (isset($_GET['i']) and isset($_GET['o'])) { // request param, pre sql injection tratament, remove html and limit string code $owner = empty($_GET['o']) ? null : substr(addslashes(strip_tags(trim(preg_replace('/\\s/m', '', $_GET['o'])))), 0, 20); $image = preg_replace('/\\.[a-z]+$/i', '', $_GET['i']); $index = max((int) filter_input(INPUT_GET, 'e', FILTER_SANITIZE_NUMBER_INT), 1); // mount file name cache $src = CACHE_DIR . sha1(CACHE_DIR . $image . $owner . $index . $thumb_w . $thumb_h . $quality . $opt . ((!empty($_GET['img_bg']) and count(explode(',', $_GET['img_bg'])) == 3) ? $_GET['img_bg'] : '255,255,255')) . $ext; // mount url core integration $handle = 'https://core.smartdealer.com.br/img/' . $image . '/' . $owner . '/' . $thumb_w . '/' . $index . '.jpg'; // check if file exists if ($cache && file_exists($src)) { if (FileCacheIsLive($src, $ttl)) { SendImageFromCache($src); } } if ($validRemote and !CheckRemoteFile($handle)) { DefaultImage(); } CreateImageToCache($handle, $thumb_w, $thumb_h, $back, $opt, $src); } else { // invalid request, return default image DefaultImage(); }