Browse Source

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

pull/1018/head
Michael Vogel 6 years ago
parent
commit
52474847cb
2 changed files with 23 additions and 6 deletions
  1. +20
    -0
      include/Photo.php
  2. +3
    -6
      include/plaintext.php

+ 20
- 0
include/Photo.php View 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;
}

+ 3
- 6
include/plaintext.php View 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];


Loading…
Cancel
Save