Egy közönséges HTTP-kéréshez PHP cURL nélkül adjon át proxy kontextust a HTTP stream wrappernek:

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

Cserélje le a dokumentációs végpontot a saját HTTP proxyjára vagy egy jelöltre a HTTP proxy listáról. A HTTP kontextus interfész TCP-címet vár a következőhöz: proxy. A request_fulluri=truea teljes cél URI-t a kérés sorába teszi, ahogy sok forward proxy megköveteli. Az időkorlát az adott wrapper szabályai szerint korlátozza a stream műveletet.

A törzs feldolgozása előtt ellenőrizze a visszaadott értéket és a figyelmeztetést; a sikertelen olvasás és az üres sikeres válasz eltérő kezelést igényel. A diagnózist ezzel az egy HTTP-céllal és korlátozott kéréssel kezdje. A HTTPS alagutazást és TLS-viselkedést ad hozzá, amelyeket a tényleges wrapper/PHP-verzióhoz kell ellenőrizni; ez a példa nem igazolja ezeket a képességeket.

A kontextus átadása ennél a hívásnál láthatóvá teszi az útvonalat, és elkerüli a nem kapcsolódó URL-olvasások módosítását. Megosztott alapértelmezett kontextus csak akkor megfelelő, ha az alkalmazás szándékosan ezt a szabályt akarja; a könyvtáraknak számolniuk kell a szélesebb hatókörével.

Ez PHP streameket állít be, nem önállóan létrehozott cURL-kezet, böngészőt vagy más folyamatot. Azonosítsa egy csomag tényleges HTTP-átvitelét, mielőtt elvárná, hogy ezt a kontextust használja.

Kapcsolódó cikkek