Last active
March 13, 2019 06:46
-
-
Save Jason-cqtan/be33e4c25e0238a1bd14a794f33d40f9 to your computer and use it in GitHub Desktop.
获取远程图片大小
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* 思路:先CURL获取图片到缓冲区,然后正则获取图片的Content-Length信息 | |
* [获取远程图片大小] | |
* @param [string] $uri [远程图片地址] | |
* @param string $user [网页授权用户名] | |
* @param string $pw [网页授权密码] | |
* @return [string] | |
*/ | |
function remote_filesize($uri,$user='',$pw='') | |
{ | |
// start output buffering | |
ob_start(); | |
// initialize curl with given uri | |
$ch = curl_init($uri); // make sure we get the header | |
curl_setopt($ch, CURLOPT_HEADER, 1); // make it a http HEAD request | |
curl_setopt($ch, CURLOPT_NOBODY, 1); // if auth is needed, do it here | |
if (!empty($user) && !empty($pw)) | |
{ | |
$headers = array('Authorization: Basic ' . base64_encode($user.':'.$pw)); | |
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); | |
} | |
$okay = curl_exec($ch); | |
curl_close($ch); // get the output buffer | |
$head = ob_get_contents(); // clean the output buffer and return to previous // buffer settings | |
ob_end_clean(); // gets you the numeric value from the Content-Length // field in the http header | |
$regex = '/Content-Length:\s([0-9].+?)\s/'; | |
$count = preg_match($regex, $head, $matches); // if there was a Content-Length field, its value // will now be in $matches[1] | |
if (isset($matches[1])) | |
{ | |
$size = $matches[1]; | |
} | |
else | |
{ | |
$size = 'unknown'; | |
} | |
$last_mb = round($size/(1024*1024),3); | |
$last_kb = round($size/1024,3); | |
return $last_kb . 'KB / ' . $last_mb.' MB'; | |
} | |
$url = "http://www.yougexing.net/uploads/180506/1-1P5061H648.jpg"; | |
echo remote_filesize($url); | |
exit; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment