2014-12-09 1 views
1

함수 get_headers()은 도메인을 변경할 때 동일한 인덱스를 가진 배열을 제공하지 않습니다. 언제 그리고 왜 이것이 발생합니까?get_headers()가 Content-Length 요소를 반환하지 않습니다.

도메인 수 백 개에 대해 Content-Length 값을 원합니다. 어떤 변화가 필요합니까? 현재 페이지의 URL에 사용

<?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']; 
?> 

나는 가끔 서버가 단지 Content-length 헤더를 보내지 않습니다 콘텐츠 길이 인덱스 enter image description here

+0

에게 서버 구성과는 아마 뭔가를이 없습니다. –

+0

서버가 Content-Length를 보내지 않아 얻을 것이 없습니다 – mleko

+0

헤더가 없습니다 ... https://requestable.pieterhordijk.com/4rCuvc – PeeHaa

답변

1

을 얻을, 당신은 기대 등이 있기 때문에, 제대로 이런 경우를 치료한다 RFC2616에 설명 된 조항.

페이지가 동적으로 생성 될 때 (PHP 또는 다른 언어 사용), 본문의 길이는 아직 헤더를 보내는 단계에서 알 수 없기 때문에 서버가 생성 할 수있는 방법이 없습니다 적절한 Content-length 헤더를 미리 작성하십시오. 그러나 cases when the Content-length header is explicitly forbidden to be sent도 있습니다.

+0

예 Content-Length 한 페이지를 얻었습니다. – Penny

+0

만약 내가 얻지 못한다면 이걸 얻을 수있는 다른 방법이 없습니까? – Penny

+0

[filesize()] (http://php.net/manual/en/function.filesize.php)를 사용하고 'URL'을 전달하면됩니다. 또한 길이를 확보하기 위해 전체 페이지를 가져 오는 동안 네트워크 오버 헤드가 발생합니다. –

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) 

어떤 내용 길이

관련 문제