Hent en HTTP-URL gennem en proxy med PHP file_get_contents
Konfigurer PHP's HTTP-streamomsholder til en videresendende proxy, inklusive anmodningsformatering og begrænsningerne i stream-kontekster.
Til en almindelig HTTP-anmodning uden PHP cURL sendes en proxykontekst til HTTP-streamomsholderen:
$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);Erstat dokumentationsslutpunktet med din HTTP-proxy eller en kandidat fra HTTP-proxylisten. HTTP-kontekstgrænsefladen forventer en TCP-adresse til proxy. request_fulluri=true sætter hele destinations-URI'en i anmodningslinjen, som mange videresendende proxyer kræver. Timeout begrænser stream-handlingen efter den omsholders regler.
Kontroller den returnerede værdi og advarslen, før du analyserer brødteksten; en mislykket læsning og et tomt vellykket svar kræver forskellig håndtering. Start fejlsøgningen med denne ene HTTP-destination og begrænsede anmodning. HTTPS tilføjer tunneling og TLS-adfærd, som skal kontrolleres for den faktiske omsholder/PHP-version; dette eksempel fastslår ikke disse egenskaber.
At sende konteksten ved dette kald holder ruten synlig og undgår at ændre urelaterede URL-læsninger. En delt standardkontekst er kun passende, når applikationen bevidst ønsker den politik; biblioteker bør tage højde for dens bredere omfang.
Dette konfigurerer PHP-streams, ikke et selvstændigt oprettet cURL-håndtag, en browser eller en anden proces. Identificer en pakkes faktiske HTTP-transport, før du forventer, at den bruger denne kontekst.