get_headers()没有返回Content-Length元素

时间:2014-12-09 09:40:38

标签: php get-headers

当我在域中进行更改时,函数get_headers()不会为数组提供相同的索引。何时以及为何会发生这种情况?

我想要数百个域的Content-Length值。我需要做出哪些改变?

<?php
$url = 'http://www.ecomexpomelbourne.com.au/sponsors/';
echo "<pre>";
$domain_data[] = array();
$domain_data = get_headers( $url, 1 );
print_r($domain_data);
echo $domain_data['Last-Modified'];
?>

当用于当前页面url时,我得到Content-Length索引 enter image description here

2 个答案:

答案 0 :(得分:1)

有时服务器不会发送Content-length标题,您应该期望并妥善处理此类情况,因为RFC2616中描述了此类规定。

在某些情况下,当页面是动态生成的(使用PHP或其他语言)时,在发送标头的阶段尚未知道正文的长度,因此服务器无法生成正确的提前Content-length标题。但也有cases when the Content-length header is explicitly forbidden to be sent

答案 1 :(得分:0)

PWS无可救药地过时,而是使用IIS。我不确定PWS是否允许配置响应标头,我找不到任何文档。这就是它现在发送的内容:

Cache-Control:private
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Tue, 09 Dec 2014 09:46:13 GMT
Expires:Mon, 08 Dec 2014 09:46:13 GMT
Server:PWS/8.1.20.5
Set-Cookie:www.ecomexpomelbourne.com.au_trackingData=; path=/
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
X-Px:nc h0-s4.p1-hyd ( h0-s2.p6-lhr), nc h0-s2.p6-lhr ( origin)

没有内容长度