CURL Возвращение странных персонажей - PullRequest
1 голос
/ 06 марта 2019

Я пытаюсь получить исходный код веб-сайта, чтобы я мог разобрать футбольные матчи, мой код:

<?php

$url = "https://www.bbc.co.uk/sport/football/scores-fixtures/2019-03-06";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2',
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language: en-gb,en;q=0.5',
    'Accept-Encoding: gzip, deflate',
    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
    'Proxy-Connection: Close',
    'Cookie: PREF=ID=2bb051bfbf00e95b:U=c0bb6046a0ce0334:',
    'Cache-Control: max-age=0',
    'Connection: Close'
));

$output = curl_exec($ch);
curl_close($ch); 


echo substr($output, 0, 12);

?>

Вывод показанной подстроки:

Мне нужен вывод в стандартном тексте, это сжатый или что-то?

Как мне это исправить, пожалуйста?

Спасибо.

1 Ответ

2 голосов
/ 06 марта 2019

Мне нужен вывод в стандартном тексте, это сжатый или что-то?

Да, именно так: сжато gzip. Вы можете выбрать
a) распаковать его, например, с помощью gzdecode
b) скажите серверу, что вам не нужен кодированный gzip ответ; Самый простой способ - это разрешить curl для вас:

  1. удалить 'Accept-Encoding: gzip, deflate', из вашего массива заголовков
  2. Добавить: curl_setopt($ch, CURLOPT_ENCODING, 'identity'); где-то перед вами curl_exec()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...