700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php查看请求头信息获取远程图片大小办法分享【PHP】

php查看请求头信息获取远程图片大小办法分享【PHP】

时间:2024-06-15 16:46:39

相关推荐

php查看请求头信息获取远程图片大小办法分享【PHP】

后端开发|php教程

获取远程图片,请求头信息

后端开发-php教程

如果要获取远程图片的大小,一种普遍的做法是先将远程图片的内容获取回来,再用strlen计算长度,这种方法需要将图片下载下来,然后才能计算。如果图片很大的话,那么网络传输就要花费不少时间,效率显然低下。笔者提供一个方法来提高效率,主要是利用http的头信息。

当访问网页的时候,服务器会返回请求的头信息,其中Content-Length表示请求的网页内容大小。如果请求的是图片,那么Content-Length就表示图片的大小。根据这个,只需要发送head请求获取返回的头信息就OK了。在php中,可以通过fsockopen方法获取头信息。代码如下:

云服务源码,ubuntu 查看包信息,双击tomcat后怎么配置,爬虫 python 中文,php在线组卷源码,wa seolzw

$fp = fsockopen("", 80, $errno, $errstr, 30);

if ($fp) {

//这里请求设置为HEAD就行了

$out = "HEAD /img/baidu_sylogo1.jpg HTTP/1.1\r\n";

$out .= "Host: \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。

易语言辅助源码数据库,vscode为什么这么卡,ubuntu下cdr,tomcat返回数据很慢,深度系统爬虫,php 数组里添加元素,广西seo优化怎么样,党政网站PHP源码,模板lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。