Получает заголовки переданные парсеру от сервера.
Устанавливает кодировку в которой работает Web-сервер Apache, принимает в качестве параметра строку, например "UTF-8"
Добавлена возможность соединения с сервером с использованием функции file_get_contents, при этом эмулируются заголовки аналогичные браузеру Firefox версии 122.0.1 для версии HTTP протокола 1.1 как для метода GET так и для POST(передача методом multipart не поддерживается как и для curl). Указанные заголовки передаются только при использовании соединения с использованием file_get_contents, для curl применяется старая логика установки заголовков как и старые значения заголовков.
Для управления технологией используемой для соединения с web-сервером добавлено свойство $notCurlConnect которое по-умолчанию принимает значение false, Таким образом по-умолчанию соединение осуществляется с использованием curl.
Так же добавлены 3 свойства в которых храняться значения заголовков запроса при соединении с использованием file_get_contents(возможно в будущем будут использованы и для curl), а именно: $clientHeaderAccept, $clientHeaderAcceptLanguage и $clientHeaderAcceptEncoding.
В начале метода go добавлено определение переменной $content для возможного избежания warning(например при использовании кэша), а так же чтобы переменная была таким образом определена не ниже уровня использования.
В начало метода go добавлена переменная $querytimeout равная 10, то есть значение таймаута соединения, она применяется как при соединении с использованием curl, так и file_get_contents.
Изменена логика заполнения массива для cookie при использовании соединения с использованием curl, а именно добавлено кодирование знака "точка с запятой" и знака "равенство" как для названия cookie так и для значения. Заполнение массива с cookie для метода соединенеияя с использованием file_get_contents осуществляется аналогичным образом.
Добавлена декомпрессия gzip и brotli при наличии соответствующих заголовков в ответе сервера для тела ответа и при доступности необходимых функций декомпрессии на сервере. Для избежания повторной попытки декомпрессии(например если file_get_contents или curl выполнят её самостоятельно) добавлена предварительная проверка - не вернул ли метод декомпрессии значение false, только при выполнении условия свойству $body будет присвоен контент полученный после декомпрессии.
Список изменений по коду описан в видео по ссылке: https://www.youtube.com/watch?v=NYJ5I7XAI3E
Добавлен метод arrayConvertPostRequestFormat(array $array); который принимает одно значение - это произвольный массив который требуется преобразовать к формату для передачи данных из этого массива POST-запросом.
Добавлен метод postjson(string $jsonString,string $charsetString). Метод устанавливающий необходимость отправить POST запрос содержанием которого является строка в формате JSON.Метод автоматически устанавливает заголовок Content-Type который будет передан при запросе и который указывает что данные передаются как application/json. Кроме того метод позволяет указать кодировку передав её в виде строки вторым параметром. Если этого не сделать будет установлена кодировка по-умолчанию: utf-8. Для работы метода были созданы 2 переменные: $requestContentType и $requestContentTypeCharset установка которых осуществляется при вызове метода postjson, иначе обе переменные имеют значение false. Сам текст запроса помещается в переменную $postactivedata. Если установить переменные $requestContentType и $requestContentTypeCharset в обход метода postjson, то отправка заголовка Content-Type произойдёт только если установлена переменная $postactivedata, если же POST данные установлены через метод postdata в версии библиотеки curlpro 1.a01 передача заголовка Content-Type для этого случая не предусмотрена.
Добавлен метод addtoheader(string $header). Метод добавлят произвольный заголовок с параметром необходимый для выполнения запроса. Пример использования $cp->addtoheader("Content-Type: application/json;charset=utf-8"); Для работы метода в классе curlPro была создана приватная переменная public $addtoheader = array(); в этот массив элементами добавляются необходимые заголовки и их значения в виде единой строки. В текущей версии добавленные заголовки не обнуляются после выполнения запроса. Для обнуления необходимо вручную выполнить $cp->addtoheader = array(); или удалить отдельные элементы этого массива.
Метод определения массива изображений getimagesarray(без параметров) теперь использует textparser в своей работе а не DOM объект как это было ранее(new domDocument()).
Не корректно применяется заголовок referer при соединении с использованием curl.
При использовании соединения с использованием curl и передаче cookie, заголовок cookie передаётся первым.
При соединении с использованием curl используются заголовки для Firefox 61-ой версии.
При соединении с использованием file_get_contents на PHP 8.1 возможно зависание запроса из за заголовка Connection: keep-alive, частично ситуацию решает timeout.
Возможно имеет смысл произвести аналитику кодирования заголовков cookie и соответственно внести необходимые изменения.
Рассмотреть возможность единой подготовки данных запросов(cookie, post, headers) как для соединения с использованием curl, так и file_get_contents, в версии 1.a01xFGC было решено этого не делать.