Опции HTTP-контекста
  Опции HTTP-контекста — Список опций HTTP-контекста
  
 
  Описание
  
   Опции контекста для транспортных протоколов http://
   и https://.
  
  
 
  Опции
  
   
    
     - 
      methodstring
- 
      
       Методы GET,POSTили любой другой HTTP-метод, который поддерживает удалённый сервер.
 
       По умолчанию — GET.
 
- 
      
       Дополнительные заголовки для отправки в запросе. Значения
       в этой опции переопределяют другие значения наподобие
       User-Agent:,Host:иAuthentication:, даже
       при следовании перенаправлениям заголовкаLocation:.
       Поэтому лучше не устанавливать заголовокHost:,
       если включили опциюfollow_location.
 
       Строковые значения указывают как пары Ключ: значениеи разделяют последовательностью символов\r\n, например:"Content-Type: application/json\r\nConnection: close".
       В массиве значения указывают как список парКлюч: значение, например:["Content-Type: application/json", "Connection: close"].
 
- 
      user_agentstring
- 
      
       Значение для отправки в заголовке User-Agent:. Значение
       учитывается, только если заголовок User-Agent не указали
       в опции контекстаheaderвыше.
 
       По умолчанию извлекается значение директивы
       user_agent
       из файла php.ini.
       
- 
      contentstring
- 
      
       Дополнительные данные для отправки после
       заголовков. Параметр часто указывают
       с POST- и PUT-запросами.
       
- 
      proxystring
- 
      
       URI-идентификатор, который указывает адрес прокси-сервера, например:
       tcp://proxy.example.com:5100.
 
- 
      request_fulluribool
- 
      
       Со значением trueпри формировании запроса
       запрашивается весь URI,
       например:GET
       http://www.example.com/path/to/file.html
       HTTP/1.0.
       Некоторые прокси-серверы требуют указывать весь идентификатор,
       хотя это нестандартный формат запроса.
 
       По умолчанию false.
 
- 
      follow_locationint
- 
      
       Опция указывает, следовать ли перенаправлениям заголовка
       Location.
       Чтобы отключить, устанавливают значение0.
 
       По умолчанию — 1.
 
- 
      max_redirectsint
- 
      
       Максимальное количество перенаправлений,
       которым можно следовать. Значение
       1или
       меньше означает, что перенаправления не выполняются.
 
       По умолчанию 20.
 
- 
      protocol_versionfloat
- 
      
       Версия HTTP-протокола.
       
       С PHP 8.0.0 значение по умолчанию — 1.1;
       до этой версии значение по умолчанию равнялось1.0.
 
- 
      timeoutfloat
- 
      
       Время ожидания на чтение в секундах
       в виде числа с плавающей точкой (float),
       например: 10.5.
 
       По умолчанию извлекается значение директивы
       default_socket_timeout
       из файла php.ini.
       
- 
      ignore_errorsbool
- 
      
       Опция указывает, извлекать ли содержимое даже при неуспешных
       статусах завершения.
       
       По умолчанию — false.
 
 
 
  Примеры
  
   
    Пример #1 Пример получения страницы и отправки данных методом POST
    
<?php
$postdata = http_build_query(
    [
        'var1' => 'некоторое содержимое',
        'var2' => 'doh',
    ]
);
$opts = [
    'http' => [
        'method'        => 'GET',
        'max_redirects' => '0',
        'ignore_errors' => '1',
    ]
];
$context = stream_context_create($opts);
$result = file_get_contents('http://example.com/submit.php', false, $context);
?>
     
    
  
  
   
    Пример #2 Пример игнорирования перенаправлений, но с получением заголовков и контента
    
<?php
$url = "http://www.example.org/header.php";
$opts = [
    'http' => [
        'method'        => 'GET',
        'max_redirects' => '0',
        'ignore_errors' => '1',
    ]
];
$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);
// Информация о заголовках
// и метаданные о потоке
var_dump(stream_get_meta_data($stream));
// Фактические данные в переменной $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>
     
    
  
  
 
  Примечания
  Замечание: 
   Опции контекста потока нижележащего сокета
   
    Нижележащий транспортный протокол
    может поддерживать дополнительные опции контекста.
    Для потоков http:// смотрите описание
    опций контекста для транспортного протокола tcp://.
    Для потоков https:// смотрите описание
    опций контекста для транспортного протокола ssl://.
   
  
  Замечание: 
   Строка HTTP-статуса
   
    Когда эта обёртка потока следует перенаправлениям,
    элемент wrapper_data, который возвращает
    функция stream_get_meta_data(), необязательно содержит
    строку HTTP-статуса, которая на самом деле относится к содержанию данных
    в индексе 0.
   
   
array (
  'wrapper_data' =>
  array (
    0 => 'HTTP/1.0 301 Moved Permanently',
    1 => 'Cache-Control: no-cache',
    2 => 'Connection: close',
    3 => 'Location: http://example.com/foo.jpg',
    4 => 'HTTP/1.1 200 OK',
    ...
 
   
    Первый запрос вернул код 301 (постоянное перенаправление),
    поэтому обёртка потока автоматически последовала перенаправлению, чтобы получить
    ответ с кодом 200 (индекс = 4).