Pro běžný HTTP požadavek bez PHP cURL předejte proxy kontext HTTP stream wrapperu:

$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);

Nahraďte dokumentační koncový bod svým HTTP proxy nebo kandidátem ze seznamu HTTP proxy. Rozhraní HTTP kontextu očekává TCP adresu pro proxy. request_fulluri=true vloží celé cílové URI do řádku požadavku, jak vyžaduje mnoho dopředných proxy. Časový limit omezuje operaci streamu podle pravidel tohoto wrapperu.

Před analýzou těla zkontrolujte vrácenou hodnotu a varování; neúspěšné čtení a prázdná úspěšná odpověď vyžadují odlišné zacházení. Diagnózu začněte tímto jediným HTTP cílem a omezeným požadavkem. HTTPS přidává tunelování a chování TLS, které je třeba ověřit pro skutečnou verzi wrapperu/PHP; tento příklad tyto schopnosti neprokazuje.

Předání kontextu při tomto volání udržuje trasu viditelnou a vyhýbá se změně nesouvisejících čtení URL. Sdílený výchozí kontext je vhodný jen tehdy, když aplikace tuto politiku záměrně chce; knihovny by měly počítat s jeho širším rozsahem.

Toto konfiguruje PHP streamy, ne samostatně vytvořený cURL handle, prohlížeč nebo jiný proces. Předtím, než budete očekávat, že balíček tento kontext použije, zjistěte jeho skutečný HTTP transport.

Související články