Für eine gewöhnliche HTTP-Anfrage ohne PHP cURL übergeben Sie einen Proxy-Kontext an den HTTP-Stream-Wrapper:

$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);

Ersetzen Sie den Dokumentationsendpunkt durch Ihren HTTP-Proxy oder einen Kandidaten aus der HTTP-Proxy-Liste. HTTP-Kontext-Schnittstelle erwartet eine TCP-Adresse für proxy. request_fulluri=true setzt den vollständigen Ziel-URI in die Anforderungszeile, wie viele Forward-Proxys verlangen. Das Timeout begrenzt den Stream-Vorgang nach den Regeln dieses Wrappers.

Prüfen Sie den Rückgabewert und die Warnung, bevor Sie den Body parsen; ein fehlgeschlagenes Lesen und eine leere erfolgreiche Antwort erfordern unterschiedliche Behandlung. Beginnen Sie die Diagnose mit diesem einen HTTP-Ziel und der begrenzten Anfrage. HTTPS fügt Tunneling und TLS-Verhalten hinzu, die für die tatsächliche Wrapper-/PHP-Version geprüft werden müssen; dieses Beispiel belegt diese Fähigkeiten nicht.

Den Kontext bei diesem Aufruf zu übergeben hält die Route sichtbar und vermeidet Änderungen an unabhängigen URL-Lesevorgängen. Ein gemeinsam genutzter Standardkontext ist nur dann angemessen, wenn die Anwendung diese Richtlinie bewusst möchte; Bibliotheken sollten seinen größeren Geltungsbereich berücksichtigen.

Dies konfiguriert PHP-Streams, nicht ein unabhängig erstelltes cURL-Handle, einen Browser oder einen anderen Prozess. Ermitteln Sie den tatsächlichen HTTP-Transport eines Pakets, bevor Sie erwarten, dass es diesen Kontext verwendet.

Ähnliche Artikel