Введение

Потоки — способ обобщения операций с файлами, сетевого обмена, сжатия данных и других операций, которые делят между собой общий набор функций и применений. В простейшем определении поток (stream) — объект ресурса (resource), который ведёт себя как источник непрерывной последовательности данных. Поэтому из потока можно последовательно читать или записывать данные и искать произвольные места внутри потока функцией fseek().

Обёртка (wrapper) — дополнительный код, который сообщает потоку, как обрабатывать конкретные протоколы или кодировки. Например, обёртка http знает, как переводить URL-адрес в запрос по протоколу HTTP/1.0 файла с удалённого сервера. В PHP по умолчанию встроили набор обёрток, которые перечисляет раздел «Протоколы и обёртки», а дополнительные пользовательские обёртки можно добавит либо в PHP-скрипт через вызов функции stream_wrapper_register(), либо непосредственно из модуля. В PHP разрешается добавлять произвольные виды обёрток, поэтому ограничений на операции с обёртками нет. Доступ к текущему списку обёрток, которые уже зарегистрировали, даёт функция stream_get_wrappers().

Ссылку на поток записывают вот так: scheme://target

  • Часть scheme (строка) — указывает название обёртки. Примеры включают: file, http, https, ftp, ftps, compress.zlib, compress.bz2 и php. Список встроенных в PHP обёрток приводит раздел «Протоколы и обёртки». Функции устанавливают соединение через обёртку по умолчанию, часто это обёртка file://, если обёртку не указали.
  • Часть target — зависит от обёртки. Для потоков файловой системы в большей части случаев указывают путь и имя файла. Для сетевых потоков чаще указывают имя хоста, и часто с добавлением пути. Описание целей для встроенных обёрток снова приводит раздел «Протоколы и обёртки».

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top