diff options
author | zotlabs <mike@macgirvin.com> | 2018-05-15 16:51:04 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2018-05-15 16:51:04 -0700 |
commit | aac5fd96cc9ea03a329234f6b2bd8b12a0f4ae5f (patch) | |
tree | d84109a6b10d470235a279195f5218ae160ebedc | |
parent | 16930c1c54ef4bb3077bb868a366c0165eb33fae (diff) | |
download | volse-hubzilla-aac5fd96cc9ea03a329234f6b2bd8b12a0f4ae5f.tar.gz volse-hubzilla-aac5fd96cc9ea03a329234f6b2bd8b12a0f4ae5f.tar.bz2 volse-hubzilla-aac5fd96cc9ea03a329234f6b2bd8b12a0f4ae5f.zip |
provide function to fetch photo contents from url
-rw-r--r-- | Zotlabs/Module/Linkinfo.php | 6 | ||||
-rw-r--r-- | Zotlabs/Module/Photo.php | 11 | ||||
-rw-r--r-- | include/photos.php | 20 |
3 files changed, 27 insertions, 10 deletions
diff --git a/Zotlabs/Module/Linkinfo.php b/Zotlabs/Module/Linkinfo.php index 3f58f3e01..f0d62b5e0 100644 --- a/Zotlabs/Module/Linkinfo.php +++ b/Zotlabs/Module/Linkinfo.php @@ -55,10 +55,10 @@ class Linkinfo extends \Zotlabs\Web\Controller { $h = explode("\n",$result['header']); foreach ($h as $l) { list($k,$v) = array_map("trim", explode(":", trim($l), 2)); - $hdrs[$k] = $v; + $hdrs[strtolower($k)] = $v; } - if (array_key_exists('Content-Type', $hdrs)) - $type = $hdrs['Content-Type']; + if (array_key_exists('content-type', $hdrs)) + $type = $hdrs['content-type']; if($type) { $zrl = is_matrix_url($url); if(stripos($type,'image/') !== false) { diff --git a/Zotlabs/Module/Photo.php b/Zotlabs/Module/Photo.php index ccc59ed09..29ad06e80 100644 --- a/Zotlabs/Module/Photo.php +++ b/Zotlabs/Module/Photo.php @@ -83,7 +83,7 @@ class Photo extends \Zotlabs\Web\Controller { $data = file_get_contents($data); } if(! $data) { - $data = file_get_contents($default); + $data = fetch_image_from_url($default,$mimetype); } if(! $mimetype) { $mimetype = 'image/png'; @@ -183,16 +183,13 @@ class Photo extends \Zotlabs\Web\Controller { switch($resolution) { case 4: - $data = file_get_contents(z_root() . '/' . get_default_profile_photo()); - $mimetype = 'image/png'; + $data = fetch_image_from_url(z_root() . '/' . get_default_profile_photo(),$mimetype); break; case 5: - $data = file_get_contents(z_root() . '/' . get_default_profile_photo(80)); - $mimetype = 'image/png'; + $data = fetch_image_from_url(z_root() . '/' . get_default_profile_photo(80),$mimetype); break; case 6: - $data = file_get_contents(z_root() . '/' . get_default_profile_photo(48)); - $mimetype = 'image/png'; + $data = fetch_image_from_url(z_root() . '/' . get_default_profile_photo(48),$mimetype); break; default: killme(); diff --git a/include/photos.php b/include/photos.php index 2d2c9cc13..9fb872700 100644 --- a/include/photos.php +++ b/include/photos.php @@ -1011,3 +1011,23 @@ function profile_photo_set_profile_perms($uid, $profileid = 0) { } } } + +function fetch_image_from_url($url,&$mimetype) { + + $redirects = 0; + $x = z_fetch_url($url,true,$redirects,[ 'novalidate' => true ]); + if($x['success']) { + $hdrs = []; + $h = explode("\n",$x['header']); + foreach ($h as $l) { + list($k,$v) = array_map("trim", explode(":", trim($l), 2)); + $hdrs[strtolower($k)] = $v; + } + if (array_key_exists('content-type', $hdrs)) + $mimetype = $hdrs['content-type']; + + return $x['body']; + } + + return EMPTY_STR; +}
\ No newline at end of file |