Pridobivanje URL-ja HTTP prek proxyja s PHP file_get_contents
Nastavite ovojnico toka HTTP v PHP za posredniški proxy, vključno z oblikovanjem zahteve in omejitvami kontekstov toka.
Za običajno zahtevo HTTP brez PHP cURL posredujte kontekst proxyja ovojnici toka HTTP:
$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);
Zamenjajte dokumentacijsko končno točko s svojim proxyjem HTTP ali kandidatom s seznama proxyjev HTTP. Vmesnik konteksta HTTP pričakuje naslov TCP za proxy. request_fulluri=truev vrstico zahteve vstavi celoten URI cilja, kot zahtevajo mnogi posredniški proxyji. Časovna omejitev omeji operacijo toka po pravilih te ovojnice.
Pred razčlenjevanjem telesa preverite vrnjeno vrednost in opozorilo; neuspelo branje in prazen uspešen odgovor zahtevata različno obravnavo. Diagnostiko začnite s tem enim ciljem HTTP in omejeno zahtevo. HTTPS doda tuneliranje in vedenje TLS, ki ju je treba preveriti za dejansko različico ovojnice in PHP; ta primer teh zmožnosti ne dokazuje.
Posredovanje konteksta pri tem klicu ohrani pot vidno in prepreči spreminjanje nepovezanih branj URL-jev. Skupni privzeti kontekst je primeren le, kadar aplikacija to politiko namerno želi; knjižnice bi morale upoštevati njegov širši obseg.
To nastavi tokove PHP, ne samostojno ustvarjenega ročaja cURL, brskalnika ali drugega procesa. Preden pričakujete, da bo paket uporabil ta kontekst, ugotovite njegov dejanski prenos HTTP.