Есть ли способ передать – сжатый в curl_setopt () PHP?

При использовании curl я вижу разницу в поведении на сервере, на который я --compressed в зависимости от того, прошел ли я – --compressed как аргумент или нет.

Я уже устанавливаю заголовок Accept-Encoding для gzip, deflate, sdch:

  curl_setopt( $ch, CURLOPT_ENCODING, 'gzip,deflate,sdch' ); 

Я также попытался установить кодировку в пустую строку: '', поскольку это предположительно означает, что поддерживается сжатие любого типа.

Однако, если я передал – --compressed через командную строку, тип содержимого, который я возвращаю, это: gzip . Если я не --compressed , тип содержимого, который я возвращаю, это text/html;charset=UTF-8

Используя curl_exec() PHP, я никогда не могу заставить его вернуть тип содержимого: gzip.

=====

Позвольте мне уточнить, что я пытаюсь выполнить. Когда я запускаю следующую команду: curl -I http://someserver.com --compressed получает меня content-type: gzip

Запуск той же команды curl -I http://someserver.com без --compressed получает меня content-type: text/html;charset=UTF-8

Попытка сделать это в PHP:

 $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, "http://someserver.com" ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); // I've tried excluding this line, setting it to gzip, and empty string curl_setopt( $ch, CURLOPT_ENCODING, '' ); curl_setopt( $ch, CURLOPT_HEADER, 1); curl_exec( $ch ) ); $content_type = curl_getinfo( $ch, CURLINFO_CONTENT_TYPE ); 

Независимо от того, что я пытаюсь, я получаю $ content-type = text/html;charset=UTF-8 а не gzip

Не все службы во всем мире предоставляют сжатый контент в качестве ответа. С помощью опции CURLOPT_ENCODING вы можете запрашивать только сжатый контент с сервера. Но сервер вернет вам простой html, если он не реализовал механизм. Вы можете попробовать с другими случайными веб-сайтами, которые предоставляют содержимое сжатия. Например, youtube.com (возможно).

Удаление параметра CURLOPT_ENCODING (так что завиток не выполняется автоматически декодирование), и включение опции accept-encoding в заголовок вручную должно сделать трюк:

 curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Encoding: gzip, deflate', 'Connection: Close' ));