New function to fetch image information. (Will be used in the addons at a later time)

This commit is contained in:
Michael Vogel 2014-06-15 23:32:14 +02:00
parent ac78989fc9
commit 52474847cb
2 changed files with 23 additions and 6 deletions

View file

@ -755,3 +755,23 @@ function import_profile_photo($photo,$uid,$cid) {
return(array($photo,$thumb,$micro)); 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;
}

View file

@ -46,6 +46,7 @@ function get_attached_data($body) {
// if nothing is found, it maybe having an image. // if nothing is found, it maybe having an image.
if (!isset($post["type"])) { if (!isset($post["type"])) {
require_once("mod/parse_url.php"); require_once("mod/parse_url.php");
require_once("include/Photo.php");
$URLSearchString = "^\[\]"; $URLSearchString = "^\[\]";
if (preg_match_all("(\[url=([$URLSearchString]*)\]\s*\[img\]([$URLSearchString]*)\[\/img\]\s*\[\/url\])ism", $body, $pictures, PREG_SET_ORDER)) { 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); $post["text"] = str_replace($pictures[0][0], "", $body);
} else { } else {
$img_str = fetch_url($pictures[0][1]); $img_str = fetch_url($pictures[0][1]);
$imgdata = get_photo_info($img_str);
$tempfile = tempnam(get_config("system","temppath"), "cache"); if (substr($imgdata["mime"], 0, 6) == "image/") {
file_put_contents($tempfile, $img_str);
$mime = image_type_to_mime_type(exif_imagetype($tempfile));
unlink($tempfile);
if (substr($mime, 0, 6) == "image/") {
$post["type"] = "photo"; $post["type"] = "photo";
$post["image"] = $pictures[0][1]; $post["image"] = $pictures[0][1];
$post["preview"] = $pictures[0][2]; $post["preview"] = $pictures[0][2];