Как декодировать & quot; Content-Encoding: gzip, gzip & quot; используя локон?

Я пытаюсь расшифровать веб-страницу www.dealstan.com, используя CURL, используя следующий код:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // Define target site
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Return page in string
curl_setopt($cr, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2');
curl_setopt($ch, CURLOPT_ENCODING , "gzip");
curl_setopt($ch, CURLOPT_TIMEOUT,5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); // Follow redirects

$return = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

$html = str_get_html("$return");
echo $html;

но это показывает какой-то мусорный характер

» } {w 6 9 ? X n ……….» около 100 строк.

Я попытался найти ответ в Hurl.it, нашел один интересный момент, похоже, HTML кодируется дважды (просто предположение, основываясь на ответе)

Найдите ответ ниже:
ПОЛУЧИТЬ http://www.dealstan.com/

200 ОК 18,87 кБ 490 мс
Посмотреть запрос Посмотреть ответ
HEADERS

Cache-Control: max-age = 0, без кеша

Cf-Ray: 18be7f54f8d80f1b-IAD

Подключение: keep-alive

Контент-кодирование: gzip, gzip ==============>? подозревая это, кто-нибудь знает об этом?

Content-Type: text / html; кодировка = UTF-8

Дата: среда, 19 ноября 2014 18:33:39 GMT

Сервер: cloudflare-nginx

Cookie-набор: __cfduid = d1cff1e3134c5f32d2bddc10207bae0681416422019; истекает = чт, 19-ноя-15 18:33:39 по Гринвичу; Путь = /; домен = .dealstan.com; HttpOnly

Передача-кодировка: чанки

Варьируется: Accept-Encoding

Скорость X-Page: 1.8.31.2-3973

X-Pingback: http://www.dealstan.com/xmlrpc.php

X-Powered-By: HHVM / 3.2.0
ТЕЛО вид сырой

H4sIAAAAAAAAA5V8Q5AoWrBk27Ztu / u2bdu2bdu2bdu2bds2583f / pjFVOQqozZnUxkVJ7PwoyAA / qeAb3y83LbYHs / 3Hv79wKm / 2N5cZyJVtCWu1xyteyzLNqYuWbdtHeELCyIZRRp / 1Fe7es3 + wL3Vfb

кто-нибудь знает, как декодировать ответ с заголовком «Content-Encoding: gzip, gzip»,

Этот сайт загружается должным образом в Firefox, Chrome и т. Д., Но я не могу декодировать с помощью CURL.

Пожалуйста, помогите мне расшифровать эту проблему?

9

Решение

Вы можете расшифровать его, обрезав заголовки и используя gzinflate.

$url = "http://www.dealstan.com"
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // Define target site
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Return page in string
curl_setopt($cr, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2');
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); // Follow redirects

$return = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

$return = gzinflate(substr($return, 10));
print_r($return);
7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]