php获取远程文件大小及信息的函数(header头信息获取)
网页设计爱好者.com开发团队在做一个客户系统时,需要做远程下载的功能,并实时显示进度条效果。
所以,需要预先读取远程文件的大小信息,然后做为实时下载进度条的参数。
功能函数如下,调用很简单,getfilesize("http://www.html.org.cn/download/xml.rar") ,就可以获取远程文件的大小了。
以下是引用片段: <?php 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; }else if(preg_match(’/content-length:(.*)/si’,$tmp,$arr)){ return trim($arr[1]); } } return null; }else{ return null; } } echo getfilesize("http://www.html.org.cn/download/xml.rar") ?> |
此函数获取远程文件大小的效果非常好,无论远程文件体积有多大,获取速度完全不受影响。
新闻热点
疑难解答