Een HTTP-URL ophalen via een proxy met PHP file_get_contents
Configureer de HTTP-streamwrapper van PHP voor een forwardproxy, inclusief de opmaak van het verzoek en de beperkingen van streamcontexten.
Voor een gewoon HTTP-verzoek zonder PHP cURL geef je een proxycontext mee aan de HTTP-streamwrapper:
$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);
Vervang het documentatie-eindpunt door je eigen HTTP-proxy of een kandidaat uit de lijst met HTTP-proxy's. De HTTP-contextinterface verwacht een TCP-adres voor proxy. request_fulluri=truezet de volledige bestemmings-URI in de verzoekregel, zoals veel forwardproxy's vereisen. De time-out begrenst de streambewerking volgens de regels van die wrapper.
Controleer de geretourneerde waarde en de waarschuwing voordat je de body parseert; een mislukte lezing en een leeg geslaagd antwoord vragen een andere aanpak. Begin de diagnose met dit ene HTTP-doel en een begrensd verzoek. HTTPS voegt tunneling en TLS-gedrag toe die je voor de werkelijke wrapper- en PHP-versie moet controleren; dit voorbeeld toont die mogelijkheden niet aan.
De context bij deze aanroep meegeven houdt de route zichtbaar en voorkomt dat niet-gerelateerde URL-lezingen veranderen. Een gedeelde standaardcontext is alleen passend als de toepassing dat beleid bewust wil; bibliotheken moeten rekening houden met het bredere bereik.
Dit configureert PHP-streams, niet een onafhankelijk aangemaakte cURL-handle, een browser of een ander proces. Stel het werkelijke HTTP-transport van een pakket vast voordat je verwacht dat het deze context gebruikt.