<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="[php]查看请求头信息获取远程图片大小的方法" id="card1">
<p> 游客</p><p>
标题:[php]查看请求头信息获取远程图片大小的方法<br/>
正文:<br/>
如果要获取远程图片的大小，一种普遍的做法是先将远程图片的内容获取回来，再用strlen计算长度，这种方法需要将图片下载下来，然后才能计算。如果图片很大的话，那么网络传输就要花费不少时间，效率显然低下。笔者提供一个方法来提高效率，主要是利用http的头信息。当访问网页的时候，服务器会返回请求的头信息，其中Content-Length表示请求的网页内容大小。如果请求的是图片，那么Content-Length就表示图片的大小。根据这个，只需要发送head请求获取返回的头信息就OK了。在php中，可以通过fsockopen方法获取头信息。代码如下：代码如下:<br/>$fp = fsockopen(&quot;www.baidu.com&quot;, 80, $errno, $errstr, 30);<br/>if ($fp) {<br/>    //这里请求设置为HEAD就行了<br/>    $out = &quot;HEAD /img/baidu_sylogo1.gif HTTP/1.1\r\n&quot;;<br/>    $out .= &quot;Host: www.baidu.com\r\n&quot;;<br/>    $out .= &quot;Connection: Close\r\n\r\n&quot;;<br/>    fwrite($fp, $out);<br/>    while (!feof($fp)) {<br/>        $header = fgets($fp);<br/>        if (stripos($header, 'Content-Length') !== false) {<br/>            $size = trim(substr($header, strpos($header, ':') + 1));<br/>    &amp;<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=914&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=914&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=914&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=914&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=914">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=914">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>