- $fp = fsockopen("www.baidu.com", 80, $errno, $errstr, 30);
- if ($fp) {
- //这里请求设置为HEAD就行了
- $out = "HEAD /img/baidu_sylogo1.gif HTTP/1.1\r\n";
- $out .= "Host: www.baidu.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来取得图片的大小。 |