Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 22318 программистов и 1028 роботов. Сейчас ищут 689 программистов ...
Приступая к работе

Введение

Вернуться к: Потоки

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

Обертка (wrapper) - дополнительный код, который объясняет потоку особенности работы со специфичными протоколами или кодировками. Например, обертка http знает, как преобразовать URL в HTTP/1.0-запрос для файла на удаленном сервере. Существует множество оберток, как встроенных в PHP изначально (см. Поддерживаемые протоколы и обработчики (wrappers)), так и дополнительных. Дополнительные обертки можно добавлять либо отдельным скриптом с помощью функции stream_wrapper_register(), либо напрямую из расширения, используя API Working with streams. Добавлять можно произвольное количество оберток, что делает возможности работы с потоками практически безграничными. Посмотреть список зарегистрированных на данный момент оберток можно с помощью функции stream_get_wrappers().

Ссылка на поток записывается в следующем виде: scheme://target

  • scheme(строка) - Название обертки. Например, file, http, https, ftp, ftps, compress.zlib, compress.bz2, php. Список встроенных оберток можно посмотреть здесь Поддерживаемые протоколы и обработчики (wrappers). На случай, если название обертки не указать, каждая функция, работающая с потоком, имеет свои умолчания (обычно это file://).
  • target - Зависит от того, какая обертка используется. Для потоков связанных с файловой системой это обычно путь и имя файла. Для сетевых потоков это, как правило, имя хоста (зачастую с добавлением к нему пути). Описания целей для встроенных оберток приведены в Поддерживаемые протоколы и обработчики (wrappers).

Замечание:

Информация об использовании потоков внутри исходного кода PHP приведена в Streams API for PHP Extension Authors reference.



Вернуться к: Потоки

© 2024 «PHP.RU — Сообщество PHP-Программистов»
Главная | Форум | Реклама на сайте | Контакты VIP Сувениры
Разработка компании ODware