這不會獲得gzip內容,而是普通內容。如何讓file_get_contents使用https發送標題?帶有file_get_contents的https標頭
$url = 'https://www.google.co.in/';
///Try to fetch compressed content using the file_get_contents function
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en-US,en;q=0.8\r\n" .
"Accept-Encoding: gzip,deflate,sdch\r\n" .
"Accept-Charset:UTF-8,*;q=0.5\r\n"
)
);
$context = stream_context_create($opts);
$zipped_content = file_get_contents($url ,false,$context);
echo $zipped_content;
print_r($http_response_header);
如果URL http://www.yahoo.co.in然後用gzip壓縮的內容供應(並確認,它看起來像垃圾)。
但是當使用「https://」時,似乎file_get_contents不會發送指定的標頭。
您可能需要使用'fread',而不是二進制安全的。 'file_get_contents'將數據加載爲一個字符串......並不是真正想要的。 – 2013-03-22 05:00:48
檢查您的瀏覽器發送給Google的標題並嘗試將它們全部發送出去。 – sectus 2013-03-22 05:27:02
@sectus標題都可以 – 2013-03-22 06:50:23