Dohvatanje HTTP URL-a kroz proxy pomoću PHP file_get_contents
Konfigurirajte PHP HTTP stream wrapper za forward proxy, uključujući oblikovanje 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 s popisa HTTP proxyja. Sučelje HTTP konteksta očekuje TCP adresu za proxy. request_fulluri=truestavlja cijeli odredišni URI u redak zahtjeva, kako zahtijevaju mnogi forward proxyji. Vremensko ograničenje 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 i PHP-a; ovaj primjer ne dokazuje te mogućnosti.
Prosljeđivanje konteksta na ovom pozivu održava rutu vidljivom i izbjegava mijenjanje nepovezanih čitanja URL-ova. Zajednički zadani kontekst prikladan je samo kada aplikacija namjerno želi tu politiku; biblioteke bi trebale uzeti u obzir njegov širi doseg.
Ovo konfigurira PHP streamove, a ne neovisno stvorenu cURL ručku, preglednik ili drugi proces. Utvrdite stvarni HTTP prijenos nekog paketa prije nego što očekujete da će koristiti ovaj kontekst.