HTTP URL lekérése proxy segítségével PHP file_get_contents használatával
A PHP HTTP stream wrapper beállítása forward proxyhoz, beleértve a kérés formázását és a stream kontextusok korlátait.
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.