function get_remote_file_size($url, $readable = true){
$parsed = parse_url($url);
$host = $parsed["host"];
$fp = @fsockopen($host, 80, $errno, $errstr, 20);
if(!$fp) return false;
else {
@fputs($fp, "HEAD $url HTTP/1.1\r\n");
@fputs($fp, "HOST: $host\r\n");
@fputs($fp, "Connection: close\r\n\r\n");
$headers = "";
while(!@feof($fp))$headers .= @fgets ($fp, 128);
}
@fclose ($fp);
$return = false;
$arr_headers = explode("\n", $headers);
foreach($arr_headers as $header) {
// follow redirect
$s = 'Location: ';
if(substr(strtolower ($header), 0, strlen($s)) == strtolower($s)) {
$url = trim(substr($header, strlen($s)));
return get_remote_file_size($url, $readable);
}
// parse for content length
$s = "Content-Length: ";
if(substr(strtolower ($header), 0, strlen($s)) == strtolower($s)) {
$return = trim(substr($header, strlen($s)));
break;
}
}
if($return && $readable) {
$size = round($return / 1024, 2);
$sz = "KB"; // Size In KB
if ($size > 1024) {
$size = round($size / 1024, 2);
$sz = "MB"; // Size in MB
}
$return = "$size $sz";
}
return $return;
}