http://
https://
http:// -- https:// — Доступ к URL-адресам по протоколу HTTP(s)
Описание
Предоставляет доступ только для чтения файлов/ресурсов через HTTP.
По умолчанию используется HTTP 1.0 GET. Для поддержки виртуальных хостов на основе имён
вместе с запросом посылается заголовок Host:
.
Если вы сконфигурировали строку
user_agent, используя
ваш файл php.ini или контекст потока, то она также будет включена
в запрос.
Этот поток также позволяет получить доступ к содержимому
ресурса; заголовки сохраняются в переменной
$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-контекста.