Доступ к URL-адресам по протоколу HTTP(s)

# http://

# https://

http:// -- https:// — Доступ к URL-адресам по протоколу HTTP(s)

### Описание

Предоставляет доступ только для чтения файлов или ресурсов через протокол HTTP. По умолчанию используется HTTP 1.0 GET. Для поддержки виртуальных хостов на основе имён вместе с запросом посылается заголовок `Host:`. Если через файл php.ini или контекст потока сконфигурировали строку user_agent, то она также включится в запрос.

Этот поток также разрешает получить доступ к содержимому ресурса; заголовки сохраняются в переменной $http_response_header.

Если важно знать URL-адрес, с которого получили документ (после всех переадресаций, которые были выполнены), то необходимо обработать серию заголовков ответов, которые возвращает поток.

INI-директива from будет использоваться для заголовка `From:`, если установлена и не переопределена в контексте Опции и параметры контекста.

### Использование

- http://example.com
- http://example.com/file.php?var1=val1&var2=val2
- http://user:password@example.com
- https://example.com
- https://example.com/file.php?var1=val1&var2=val2
- https://user:password@example.com

### Опции

Основная информация
Атрибут | Поддержка
--- | ---
Ограничение по allow_url_fopen | Да
Чтение | Да
Запись | Нет
Добавление | Нет
Одновременное чтение и запись | Недоступно
Поддержка stat() | Нет
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет

### Примеры

Пример #1 Определение URL-адреса, с которого забрали документ после переадресаций

    <?php

    $url = 'http://www.example.com/redirecting_page.php';

    $fp = fopen($url, 'r');

    $meta_data = stream_get_meta_data($fp);
    foreach ($meta_data['wrapper_data'] as $response) {
        /* Выполнялась ли переадресация? */
        if (strtolower(substr($response, 0, 10)) == 'location: ') {
            /* Сохранить в переменной $url адрес переадресации */
            $url = substr($response, 10);
        }
    }

    ?>

### Примечания

> Замечание: Протокол HTTPS поддерживается, только когда включили модуль openssl.

HTTP-соединения предназначены только для чтения; запись данных или копирование файлов в HTTP-ресурс не поддерживается.

Отправку, например, POST- и PUT-запросов можно выполнить через HTTP-контекст.

### Смотрите также

- Опции HTTP-контекста
- $http_response_header
- stream_get_meta_data() - Извлекает заголовок или метаданные из потоков или файловых указателей

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open