Dohvatite HTTP URL kroz proxy pomoću PHP file_get_contents
Konfigurirajte PHP-ov HTTP stream wrapper za forward proxy, uključujući formatiranje zahtjeva i ograničenja stream konteksta.
Za običan HTTP zahtjev bez PHP cURL-a, proslijedite proxy kontekst HTTP stream wrapperu:
$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);Zamijenite dokumentacijsku krajnju točku svojim HTTP proxyjem ili kandidatom sa liste HTTP proxyja. HTTP kontekstno sučelje očekuje TCP adresu za proxy. request_fulluri=true stavlja cijeli odredišni URI u red zahtjeva, kako zahtijevaju mnogi forward proxyji. Tajm-aut ograničava stream operaciju prema pravilima tog wrappera.
Provjerite vraćenu vrijednost i upozorenje prije parsiranja tijela; neuspješno čitanje i prazan uspješan odgovor zahtijevaju različito rukovanje. Započnite dijagnostiku s ovim jednim HTTP odredištem i ograničenim zahtjevom. HTTPS dodaje tuneliranje i TLS ponašanje koje treba provjeriti za stvarnu verziju wrappera/PHP-a; ovaj primjer ne uspostavlja te mogućnosti.
Prosljeđivanje konteksta na ovom pozivu drži rutu vidljivom i izbjegava mijenjanje nepovezanih čitanja URL-a. Zajednički zadani kontekst prikladan je samo kada aplikacija namjerno želi tu politiku; biblioteke trebaju uzeti u obzir njegov širi obuhvat.
Ovo konfigurira PHP streamove, a ne samostalno stvoreni cURL handle, preglednik ili drugi proces. Identificirajte stvarni HTTP transport paketa prije nego što očekujete da će koristiti ovaj kontekst.