Для обычного 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-транспорт пакета, прежде чем ожидать, что он будет использовать этот контекст.

Похожие статьи