Hämta en HTTP-URL via en proxy med PHP file_get_contents
Konfigurera PHP:s HTTP-strömomslag för en vidarebefordrande proxy, inklusive förfrågningsformat och begränsningarna i strömkontexter.
För en vanlig HTTP-förfrågan utan PHP cURL, skicka en proxykontext till HTTP-strömomslaget:
$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);Byt ut dokumentationsslutpunkten mot din HTTP-proxy eller en kandidat från HTTP-proxylistan. HTTP-kontextgränssnittet förväntar sig en TCP-adress för proxy. request_fulluri=true placerar hela destinations-URI:n i förfrågningsraden, som många vidarebefordrande proxyservrar kräver. Tidsgränsen begränsar strömoperationen enligt omslagets regler.
Kontrollera det returnerade värdet och varningen innan du tolkar brödtexten; en misslyckad läsning och ett tomt lyckat svar kräver olika hantering. Börja felsökningen med denna enda HTTP-destination och begränsade förfrågan. HTTPS tillför tunneling och TLS-beteende som måste kontrolleras för den faktiska omslags-/PHP-versionen; det här exemplet fastställer inte dessa funktioner.
Att skicka kontexten vid detta anrop håller rutten synlig och undviker att ändra orelaterade URL-läsningar. En delad standardkontext är lämplig endast när programmet medvetet vill ha den policyn; bibliotek bör ta hänsyn till dess bredare omfattning.
Detta konfigurerar PHP-strömmar, inte ett självständigt skapat cURL-handtag, en webbläsare eller en annan process. Identifiera ett pakets faktiska HTTP-transport innan du förväntar dig att det använder denna kontext.