Атрыманне HTTP-URL праз проксі з дапамогай PHP file_get_contents
Наладзьце абгортку HTTP-патоку PHP для прамога проксі, уключаючы фарматаванне запытаў і абмежаванні кантэкстаў патокаў.
Для звычайнага 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-транспарт пакета, перш чым чакаць, што ён выкарыстае гэты кантэкст.