Опції контекста HTTP
  Опції контекста HTTP — Список опцій контекста HTTP
  
 
 
  Опис
  
   Опції контекста для транспортних протоколів http:// та
   https://.
  
  
 
  Опції
  
   
    
     - 
      methodstring
- 
      
       GET,POST, або
       будь-який інший метод HTTP, що підтримується віддаленим сервером.
 
       Початково - GET.
 
- 
      
       Додаткові заголовки, що відправляються під час запиту. Значення в
       цих опціях будуть перевизначати інші опції (такі як
       User-agent:,Host:,
       таAuthentication:).
 
- 
      user_agentstring
- 
      
       Значення для відправки із заголовками User-Agent:.
       Ці значення будуть використовуватись лише якщо не буде
       визначено user-agent в опціях контекстаheaderвище.
 
       Початково використовується директива
       user_agent
       з файла php.ini.
       
- 
      contentstring
- 
      
       Додаткові дані для відправки після заголовків. Зазвичай використовується
       із запитами POST або PUT.
       
- 
      proxystring
- 
      
       Адреса URI, що визначає проксі-сервер. (наприклад
       tcp://proxy.example.com:5100).
 
- 
      request_fulluriboolean
- 
      
       Якщо встановлено значення в true, то при створенні запиту буде
       використовуватись повна URI.  (наприкладGET http://www.example.com/path/to/file.html HTTP/1.0).
       Хоча це нестандартний формат запиту, деякі проксі-сервера
       вимагають його.
 
       Початково false.
 
- 
      follow_locationinteger
- 
      
       Вказує чи потрібно слідувати переадресаціям заголовку
       Location. Для відключення встановіть0.
 
       Початково 1.
 
- 
      max_redirectsinteger
- 
      
       Максимальна кількість переходів при переадресаціях. Значення
       1або менше, означає переходи без
     переадресацій.
 
       Початково 20.
 
- 
      protocol_versionfloat
- 
      
       Версія HTTP-протоколу.
       
       Початково 1.0.
 Зауваження: 
        
        В PHP до версії 5.3.0 не було впроваджено декодування фрагментованих
        передач. Якщо це значення встановити в 1.1, це
        означає, що ви берете відповідальність бути сумісним з1.1.
 
 
- 
      timeoutfloat
- 
      
       Час очікування для читання в секундах, визначається через
       float (наприклад 10.5).
 
       Початково використовується значення директиви
       default_socket_timeout
       з файлу php.ini.
       
- 
      ignore_errorsboolean
- 
      
       Отримувати вміст навіть при неуспішних кодах статуса.
       
       Початково false.
 
 
 
 
 
 
  Приклади
  
   
    Приклад #1 Отримання сторінки та відправлення POST-даних
    
<?php
$postdata = http_build_query(
    array(
        'var1' => 'some content',
        'var2' => 'doh'
    )
);
$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);
$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 = array('http' =>
    array(
        '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 Permantenly',
    1 => 'Cache-Control: no-cache',
    2 => 'Connection: close',
    3 => 'Location: http://example.com/foo.jpg',
    4 => 'HTTP/1.1 200 OK',
    ...
 
   
    Перший запит повертає 301 (постійну переадресацію),
    так що потік обгортки автоматично слідує переадресації щоб отримати
    відповідь 200 (index = 4).