当前位置:首页 > Web开发 > 正文

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

2024-03-31 Web开发

一、get_header($url,true):

$url = ; $res = get_headers($url,true); echo "<pre>"; print_R($res); die; $filesize = round($res[Content-Length]/1024/1024,2);//四舍五入获取文件大小,单位M

技术图片

image.png

二、curl:

$url = ; 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 = ; 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 =;//获取远程文件 echo filesize($url);

file_get_contents(),获取文件内容,strlen()获取内容大小:

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

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/39816.html