php查看请求头信息获取远程图片大小的方法
2013-12-30 08:19
791 查看
php通过fsockopen方法获取头信息,如果请求的是图片,这里的Content-Length就表示图片的大小
如果要获取远程图片的大小,一种普遍的做法是先将远程图片的内容获取回来,再用strlen计算长度,这种方法需要将图片下载下来,然后才能计算。如果图片很大的话,那么网络传输就要花费不少时间,效率显然低下。笔者提供一个方法来提高效率,主要是利用http的头信息。当访问网页的时候,服务器会返回请求的头信息,其中Content-Length表示请求的网页内容大小。如果请求的是图片,那么Content-Length就表示图片的大小。根据这个,只需要发送head请求获取返回的头信息就OK了。在php中,可以通过fsockopen方法获取头信息。代码如下:
复制代码代码如下:$fp = fsockopen("www.jbxue.com", 80, $errno, $errstr, 30);
if ($fp) {
//这里请求设置为HEAD
$out = "HEAD /img/jbxue_sylogo1.gif HTTP/1.1\r\n";
$out .= "Host: www.jbxue.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$header = fgets($fp);
if (stripos($header, 'Content-Length') !== false) {
$size = trim(substr($header, strpos($header, ':') + 1));
echo $size;
}
}
fclose($fp);
} else {
echo "$errstr ($errno)";
}
和发起GET请求一样,只需要将请求类型GET设置为HEAD就可以了。请求的主机和路径,修改成自己需要的就可以了。
小结:php里也可以使用get_headers来获取头信息,不过笔者测试过这个函数,是GET请求,详情参考:php函数get_headers是HEAD请求还是GET请求。另外有的服务器可能会屏蔽HEAD请求,如果被屏蔽了,就只能老老实实用GET请求了。如果要这样做的话,可以直接用现成的函数getimagesize。
如果要获取远程图片的大小,一种普遍的做法是先将远程图片的内容获取回来,再用strlen计算长度,这种方法需要将图片下载下来,然后才能计算。如果图片很大的话,那么网络传输就要花费不少时间,效率显然低下。笔者提供一个方法来提高效率,主要是利用http的头信息。当访问网页的时候,服务器会返回请求的头信息,其中Content-Length表示请求的网页内容大小。如果请求的是图片,那么Content-Length就表示图片的大小。根据这个,只需要发送head请求获取返回的头信息就OK了。在php中,可以通过fsockopen方法获取头信息。代码如下:
复制代码代码如下:$fp = fsockopen("www.jbxue.com", 80, $errno, $errstr, 30);
if ($fp) {
//这里请求设置为HEAD
$out = "HEAD /img/jbxue_sylogo1.gif HTTP/1.1\r\n";
$out .= "Host: www.jbxue.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$header = fgets($fp);
if (stripos($header, 'Content-Length') !== false) {
$size = trim(substr($header, strpos($header, ':') + 1));
echo $size;
}
}
fclose($fp);
} else {
echo "$errstr ($errno)";
}
和发起GET请求一样,只需要将请求类型GET设置为HEAD就可以了。请求的主机和路径,修改成自己需要的就可以了。
小结:php里也可以使用get_headers来获取头信息,不过笔者测试过这个函数,是GET请求,详情参考:php函数get_headers是HEAD请求还是GET请求。另外有的服务器可能会屏蔽HEAD请求,如果被屏蔽了,就只能老老实实用GET请求了。如果要这样做的话,可以直接用现成的函数getimagesize。
相关文章推荐
- php查看请求头信息获取远程图片大小的方法分享
- php查看请求头信息获取远程图片大小的方法分享
- PHP高效获取远程图片尺寸和大小的实现方法
- PHP: 获取远程图片的大小
- php 获取远程图片的一个方法
- 通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
- PHP 获取远程文件大小常用方法总结
- PHP高效获取远程图片尺寸和大小
- PHP获取远程图片并保存到本地的方法
- 通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
- php获取请求url时响应的报头信息几种方法
- PHP获取远程图片并调整图像大小
- PHP获取远程图片并调整图像大小(转)
- php获取远程图片体积大小的实例
- python获取远程图片大小和尺寸的方法
- Python实现获取本地及远程图片大小的方法示例
- php获取远程图片体积大小的实例
- PHP获取远程图片并调整图像大小
- PHP CodeBase: 获取远程图片的体积大小
- PHP获取远程图片并保存到本地的方法