php 可以獲取遠程文件的大小,以及本地文件的大小。那么具體該如何操作呢,下面飛鳥慕魚博客就來和大家說一說!

php get_header() 獲取文件的大小

get_headers():可以通過服務器的響應頭來判斷遠程文件是否存在以及獲取文件的一些基本信息,包括文件類型,文件大小等

關于 get_headers() 詳細信息,可參考:http://xswdd.cn/post/314.html

php代碼:

<?php
$url = 'http://oss.feiniaomy.com/zhutichajian/theme_vip.jpg';
$res = get_headers($url,true);   
print_r($res);  
//四舍五入獲取將文件大小的單位轉換成 MB
$filesize = round($res['Content-Length']/1024/1024,2);
echo '文件大小為:'.$filesize.' MB';
?>

代碼執行結果:

//打印結果:
Array
(
    [0] => HTTP/1.1 200 OK
    [Server] => Tengine
    [Content-Type] => image/jpeg
    [Content-Length] => 175042 //這里表示文件的大小
    [Connection] => close
    [EagleId] => 1bdd1e1a15897737749167998e
)
//最后輸出結果
文件大小為:0.17 MB

php filesize() 函數獲取本地文件的大小

filesize():函數可以返回指定文件的大小,成功則返回文件的字節數,失敗返回 false 并生成一條 E_WARNING 級別的錯誤

示例:

<?php
//這里的代碼只是示例,實際應用,應注意判斷
$size = filesize("text.txt"); 
//單位轉成 KB,這里只是簡單的應用,具體的文件大小單位轉換方法,參考飛鳥慕魚博客相關文章
echo round($size/1024,2).' KB';
?>

注意:filesize(),只能獲取本地文件大小,不能獲取遠程文件大小!

php file_get_contents()獲取文件內容,strlen()獲取內容大小

国产视频appphp file_get_contents() 函數獲取文件的內容,再利用 strlen() 獲取文件的大小

php代碼:

<?php
//先獲取文件的內容,可以是遠和文件,但不能是壓縮包
$conts = file_get_contents("text.txt");
//輸入內容的長度(單位為字節)
echo strlen($conts);
?>

php 使用 curl 獲取文件的大小

php curl 組件可以做很多的事情,當然它也可以獲取一個文件的大小

php代碼:

<?php
$url = 'http://www.xxxxx.com/xxxx.zip';
echo getFileSize($url);
//定義一個函數,方便調用
function getFileSize($url){    
    ob_start();    
    $ch = curl_init($url);    
    curl_setopt($ch, CURLOPT_HEADER, 1);    
    curl_setopt($ch, CURLOPT_NOBODY, 1);     
    $okay = curl_exec($ch);   
    curl_close($ch);    
    $head = ob_get_contents();    
    ob_end_clean();
    $regex = '/Content-Length:\s([0-9].+?)\s/';   
    $count = preg_match($regex, $head, $matches);    
    $size = isset($matches[1])?$matches[1]:'unknown';       
    return $size;   
} 
?>