zoukankan      html  css  js  c++  java
  • PHP获取文件大小的几种方法!

    一、get_header($url,true):
    $url = 'http://www.xxx.com/MoJing_win_x86_64_V5.125.zip';
    $res = get_headers($url,true);   
      echo "<pre>";
      print_R($res);
      die; 
    $filesize = round($res['Content-Length']/1024/1024,2);//四舍五入获取文件大小,单位M
    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 '<br>head-->'.$head.'<----end <br>';   
        
        $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
    ");   
            fputs($fp,"Host:$url[host]
    
    ");   
            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()获取内容大小:
  • 相关阅读:
    Java实现文件夹下文件实时监控
    JAVA读取文件夹大小
    Java获取Linux上指定文件夹下所有第一级子文件夹
    自定义日志框架实现
    Node爬取简书首页文章
    NodeJS多进程
    NodeJS 连接接MySQL
    NodeJS Web模块
    NodeJS 模块&函数
    NodeJS Stream流
  • 原文地址:https://www.cnblogs.com/bluealine/p/12076316.html
Copyright © 2011-2022 走看看