Получение HTTP-URL через прокси с помощью PHP file_get_contents
Настройте обёртку HTTP-потока PHP для прямого прокси, включая форматирование запроса и ограничения контекстов потока.
Для обычного HTTP-запроса без PHP cURL передайте контекст прокси обёртке HTTP-потока:
$context = stream_context_create([
'http' => [
'proxy' => 'tcp://203.0.113.10:8080',
'request_fulluri' => true,
'timeout' => 10,
],
]);
$body = file_get_contents('http://example.com/', false, $context);
Замените документационный эндпоинт своим HTTP-прокси или кандидатом из списка HTTP-прокси. Интерфейс контекста HTTP ожидает TCP-адрес для proxy. request_fulluri=trueпомещает полный URI назначения в строку запроса, как требуют многие прямые прокси. Тайм-аут ограничивает операцию потока по правилам этой обёртки.
Проверьте возвращённое значение и предупреждение перед разбором тела; неудачное чтение и пустой успешный ответ требуют разной обработки. Начните диагностику с этого единственного HTTP-назначения и ограниченного запроса. HTTPS добавляет туннелирование и поведение TLS, которые нужно проверять для фактической версии обёртки и PHP; этот пример не устанавливает такие возможности.
Передача контекста в этом вызове оставляет маршрут видимым и позволяет не менять посторонние чтения URL. Общий контекст по умолчанию уместен только тогда, когда приложение сознательно хочет такой политики; библиотекам следует учитывать его более широкий охват.
Это настраивает потоки PHP, а не самостоятельно созданный дескриптор cURL, браузер или другой процесс. Определите фактический HTTP-транспорт пакета, прежде чем ожидать, что он будет использовать этот контекст.