Recuperare un URL HTTP tramite un proxy con file_get_contents di PHP
Configura il wrapper di flusso HTTP di PHP per un proxy diretto, inclusa la formattazione della richiesta e i limiti dei contesti di flusso.
Per una normale richiesta HTTP senza cURL di PHP, passa un contesto proxy al wrapper di flusso 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);
Sostituisci l'endpoint di documentazione con il tuo proxy HTTP o con un candidato della lista di proxy HTTP. L'interfaccia del contesto HTTP attende un indirizzo TCP per proxy. request_fulluri=trueinserisce l'URI di destinazione completa nella riga di richiesta, come richiedono molti proxy diretti. Il timeout limita l'operazione di flusso secondo le regole di quel wrapper.
Controlla il valore restituito e l'avviso prima di analizzare il corpo; una lettura non riuscita e una risposta vuota riuscita richiedono gestioni diverse. Inizia la diagnosi con questa singola destinazione HTTP e una richiesta limitata. HTTPS aggiunge tunneling e comportamento TLS che vanno verificati per la versione effettiva del wrapper e di PHP; questo esempio non dimostra tali capacità.
Passare il contesto in questa chiamata mantiene visibile il percorso ed evita di modificare letture di URL non correlate. Un contesto predefinito condiviso è appropriato solo quando l'applicazione vuole deliberatamente quella politica; le librerie dovrebbero tenere conto della sua portata più ampia.
Questo configura i flussi di PHP, non un handle cURL creato indipendentemente, un browser o un altro processo. Identifica il trasporto HTTP effettivo di un pacchetto prima di aspettarti che usi questo contesto.