PHP获取文件大小的几种方法!

一、get_header($url,true):
$url = 'http://www.xxx.com/MoJing_win_x86_64_V5.125.zip';
$res = get_headers($url,true);   
  echo "
";
  print_R($res);
  die; 
$filesize = round($res['Content-Length']/1024/1024,2);//四舍五入获取文件大小,单位M
PHP获取文件大小的几种方法!_第1张图片
image.png
二、curl:
$url = 'http://www.3d414.com/MoJing_win_x86_64_V5.125.zip';
echo getFileSize($url);die;//71741458
function getFileSize($url,$user='',$pw='')   
{    
    ob_start();    
    $ch = curl_init($url);    
    curl_setopt($ch, CURLOPT_HEADER, 1);    
    curl_setopt($ch, CURLOPT_NOBODY, 1);    
    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);    
    $head = ob_get_contents();    
    ob_end_clean();   
   
    //echo '
head-->'.$head.'<----end
'; $regex = '/Content-Length:\s([0-9].+?)\s/'; $count = preg_match($regex, $head, $matches); $size = isset($matches[1])?$matches[1]:'unknown'; //$last=round($size/(1024*1024),3); //return $last.' MB'; return $size; }
三、fsockopen:

$url = 'http://www.xxx.com/MoJing_win_x86_64_V5.125.zip';
echo getFileSize($url);die;
function getFileSize($url)   
{   
    $url = parse_url($url);   
    if($fp = @fsockopen($url['host'],empty($url['port'])?80:$url['port'],$error))   
    {   
        fputs($fp,"GET ".(empty($url['path'])?'/':$url['path'])." HTTP/1.1\r\n");   
        fputs($fp,"Host:$url[host]\r\n\r\n");   
        while(!feof($fp))   
        {   
            $tmp = fgets($fp);   
            if(trim($tmp) == '')   
            {   
                break;   
            }   
            elseif(preg_match('/Content-Length:(.*)/si',$tmp,$arr))   
            {   
                return trim($arr[1]);   
            }   
        }   
        return null;   
    }   
    else   
    {   
        return null;   
    }   
}  

filesize(),只能获取本地文件大小,不能获取远程文件大小:
$url = './v3.rar';//  获取本地文件
$url ='http://www.xxx.cc/v3.rar';//获取远程文件  
echo filesize($url);


file_get_contents(),获取文件内容,strlen()获取内容大小:
$url = './v3.rar';//相对路径
$url = 'http://www.xxx.cc/v3.rar';//绝对路径
$content = file_get_contents($url);   
echo strlen($content );  //获取文件大小
echo"
"; echo $content ; //输出文件内容

你可能感兴趣的:(PHP获取文件大小的几种方法!)