]> git.mxchange.org Git - friendica.git/commitdiff
New function to fetch image information. (Will be used in the addons at a later time)
authorMichael Vogel <icarus@dabo.de>
Sun, 15 Jun 2014 21:32:14 +0000 (23:32 +0200)
committerMichael Vogel <icarus@dabo.de>
Sun, 15 Jun 2014 21:32:14 +0000 (23:32 +0200)
include/Photo.php
include/plaintext.php

index 45164333dd238d4fa937bccfa5c639839b432f77..282cf4458e17c0a5c7cd4ddaa8382a9f87098536 100644 (file)
@@ -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;
+}
index 3a81470b68aa585d46bf8df0220a4d81176e2560..3d30a3299c9e5f18bedd7fd1dce0431d44ef3a97 100644 (file)
@@ -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];