Hent ein HTTP-URL gjennom ein proxy med PHP file_get_contents
Set opp HTTP-straumeinnpakninga til PHP for ein videresendande proxy, inkludert formatering av førespurnaden og grensene for straumkontekstar.
For ein vanleg HTTP-førespurnad utan PHP cURL, send ein proxykontekst til HTTP-straumeinnpakninga:
$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);
Bytt ut dokumentasjonsendepunktet med din HTTP-proxy eller ein kandidat frå lista over HTTP-proxyar. HTTP-kontekstgrensesnittet ventar ei TCP-adresse for proxy. request_fulluri=trueset heile mål-URI-en i førespurnadslinja, slik mange videresendande proxyar krev. Tidsavbrotet avgrensar straumoperasjonen etter reglane til den innpakninga.
Kontroller returverdien og åtvaringa før du analyserer kroppen; ei mislukka lesing og eit tomt vellukka svar krev ulik handsaming. Start feilsøkinga med denne eine HTTP-destinasjonen og ein avgrensa førespurnad. HTTPS legg til tunnellering og TLS-åtferd som må kontrollerast for den faktiske innpaknings- og PHP-versjonen; dette dømet stadfester ikkje desse eigenskapane.
Å senda konteksten i dette kallet held ruta synleg og unngår å endra urelaterte URL-lesingar. Ein delt standardkontekst er berre høveleg når applikasjonen med vilje vil ha den politikken; bibliotek bør ta høgd for det vidare omfanget.
Dette set opp PHP-straumar, ikkje eit sjølvstendig oppretta cURL-handtak, ein nettlesar eller ein annan prosess. Identifiser den faktiske HTTP-transporten til ein pakke før du ventar at han brukar denne konteksten.