Отримання 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-транспорт пакета, перш ніж очікувати, що він використає цей контекст.