Извличане на 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 транспорт на даден пакет, преди да очаквате да използва този контекст.