Для звычайнага HTTP-запыту без PHP cURL перадайце кантэкст проксі абгортцы 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);

Замяніце канчатковы пункт дакументацыі сваім HTTP-проксі або кандыдатам са спісу HTTP-проксі. Інтэрфейс кантэксту HTTP чакае TCP-адрас для proxy. request_fulluri=true дадае поўны URI прызначэння ў радок запыту, як патрабуюць многія прамыя проксі. Тайм-аўт абмяжоўвае аперацыю патоку паводле правілаў гэтай абгорткі.

Праверце вернутае значэнне і папярэджанне перад разборам цела; няўдалае чытанне і пусты паспяховы адказ патрабуюць рознай апрацоўкі. Пачніце дыягностыку з гэтага аднаго HTTP-прызначэння і абмежаванага запыту. HTTPS дадае тунеляванне і паводзіны TLS, якія трэба праверыць для фактычнай версіі абгорткі/PHP; гэты прыклад не ўстанаўлівае такіх магчымасцей.

Перадача кантэксту ў гэтым выкліку захоўвае маршрут бачным і пазбягае змены непаўязаных чытанняў URL. Агульны прадвызначаны кантэкст дарэчы толькі тады, калі праграма свядома хоча такой палітыкі; бібліятэкі павінны ўлічваць яго шырэйшую сферу.

Гэта наладжвае патокі PHP, а не самастойна створаную ручку cURL, браўзер або іншы працэс. Вызначце фактычны HTTP-транспарт пакета, перш чым чакаць, што ён выкарыстае гэты кантэкст.

Падобныя артыкулы