From 52474847cbb93bd79a94a32fc4830c562c3452bd Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 15 Jun 2014 23:32:14 +0200 Subject: [PATCH] New function to fetch image information. (Will be used in the addons at a later time) --- include/Photo.php | 20 ++++++++++++++++++++ include/plaintext.php | 9 +++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/include/Photo.php b/include/Photo.php index 45164333d..282cf4458 100644 --- a/include/Photo.php +++ b/include/Photo.php @@ -755,3 +755,23 @@ function import_profile_photo($photo,$uid,$cid) { return(array($photo,$thumb,$micro)); } + +function get_photo_info($url) { + $data = array(); + + $data = Cache::get($url); + + if (is_null($data)) { + $img_str = fetch_url($url, true, $redirects, 4); + + $tempfile = tempnam(get_config("system","temppath"), "cache"); + file_put_contents($tempfile, $img_str); + $data = getimagesize($tempfile); + unlink($tempfile); + + Cache::set($url, serialize($data)); + } else + $data = unserialize($data); + + return $data; +} diff --git a/include/plaintext.php b/include/plaintext.php index 3a81470b6..3d30a3299 100644 --- a/include/plaintext.php +++ b/include/plaintext.php @@ -46,6 +46,7 @@ function get_attached_data($body) { // if nothing is found, it maybe having an image. if (!isset($post["type"])) { require_once("mod/parse_url.php"); + require_once("include/Photo.php"); $URLSearchString = "^\[\]"; if (preg_match_all("(\[url=([$URLSearchString]*)\]\s*\[img\]([$URLSearchString]*)\[\/img\]\s*\[\/url\])ism", $body, $pictures, PREG_SET_ORDER)) { @@ -64,12 +65,8 @@ function get_attached_data($body) { $post["text"] = str_replace($pictures[0][0], "", $body); } else { $img_str = fetch_url($pictures[0][1]); - - $tempfile = tempnam(get_config("system","temppath"), "cache"); - file_put_contents($tempfile, $img_str); - $mime = image_type_to_mime_type(exif_imagetype($tempfile)); - unlink($tempfile); - if (substr($mime, 0, 6) == "image/") { + $imgdata = get_photo_info($img_str); + if (substr($imgdata["mime"], 0, 6) == "image/") { $post["type"] = "photo"; $post["image"] = $pictures[0][1]; $post["preview"] = $pictures[0][2];