Načtení HTTP URL přes proxy pomocí PHP file_get_contents
Nakonfigurujte HTTP stream wrapper PHP pro dopředný proxy, včetně formátování požadavku a omezení stream kontextů.
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.