Функции для работы с потоками

Содержание

  • set_socket_blocking — Псевдоним stream_set_blocking
  • stream_bucket_append — Добавление бакета в цепочку
  • stream_bucket_make_writeable — Вернуть ссылку на бакет в цепочке для дальнейшей работы с ним
  • stream_bucket_new — Создать новый бакет для использования с текущим потоком
  • stream_bucket_prepend — Присоединить бакет в начало цепочки
  • stream_context_create — Создаёт контекст потока
  • stream_context_get_default — Получает контекст потока по умолчанию
  • stream_context_get_options — Получает настройки для потока/обёртки/контекста
  • stream_context_get_params — Извлекает параметры из контекста
  • stream_context_set_default — Устанавливает контекст потоков по умолчанию
  • stream_context_set_option — Устанавливает опцию для потока/обёртки/контекста
  • stream_context_set_params — Устанавливает параметры для потока/обертки/контекста
  • stream_copy_to_stream — Копирует данные из одного потока в другой
  • stream_encoding — Устанавливает кодировку для потока
  • stream_filter_append — Прикрепляет фильтр к потоку
  • stream_filter_prepend — Прикрепляет фильтр к потоку
  • stream_filter_register — Регистрирует потоковый фильтр, определённый пользователем
  • stream_filter_remove — Удаляет фильтр из потока
  • stream_get_contents — Читает оставшуюся часть потока в строку
  • stream_get_filters — Извлекает список зарегистрированных фильтров
  • stream_get_line — Получает строку из потокового ресурса до указанного разделителя
  • stream_get_meta_data — Извлекает заголовок/метаданные из потоков/файловых указателей
  • stream_get_transports — Возвращает список зарегистрированных транспортов сокета
  • stream_get_wrappers — Извлекает список зарегистрированных потоков
  • stream_is_local — Проверяет, является ли поток локальным потоком
  • stream_notification_callback — Callback-функция для параметра контекста notification
  • stream_register_wrapper — Псевдоним stream_wrapper_register
  • stream_resolve_include_path — Составляет полное имя файла, используя пути включения
  • stream_select — Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • stream_set_blocking — Устанавливает блокирующий/неблокирующий режим на потоке
  • stream_set_chunk_size — Задание размера фрагмента данных потока
  • stream_set_read_buffer — Устанавливает буферизацию чтения файла на указанном потоке
  • stream_set_timeout — Устанавливает значение тайм-аута на потоке
  • stream_set_write_buffer — Устанавливает буферизацию файла при записи в указанный поток
  • stream_socket_accept — Принимает соединение на сокете, созданном c помощью функции stream_socket_server
  • stream_socket_client — Открывает соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_socket_enable_crypto — Включает или отключает шифрование на уже подсоединённом сокете
  • stream_socket_get_name — Извлекает название локального или удалённого сокета
  • stream_socket_pair — Создаёт пару связанных неразличимых потоковых сокетов
  • stream_socket_recvfrom — Получает данные из сокета, подсоединённого или нет
  • stream_socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
  • stream_socket_server — Создаёт интернет-сокет или доменный сокет Unix
  • stream_socket_shutdown — Закрывает полнодуплексное соединение
  • stream_supports_lock — Определяет, поддерживает ли поток блокировку
  • stream_wrapper_register — Регистрирует обёртку URL, реализованную в виде PHP-класса
  • stream_wrapper_restore — Восстанавливает ранее разрегистрированную встроенную обёртку
  • stream_wrapper_unregister — Отменяет регистрацию обертки URL

Коментарии

As this article says, there is no quoted_printable_encode function() in PHP: http://www.zend.com/manual/filters.convert.php

However there is a stream filter for quoted printable encoding. Here's an example function that produces output suitable for email and doesn't explicitly use external files (though it might do for strings over 2Mb due to the nature of the temp stream type):

<?php
function quoted_printable_encode($string) {
       
$fp fopen('php://temp/''r+');
       
$params = array('line-length' => 70'line-break-chars' => "\r\n");
       
stream_filter_append($fp'convert.quoted-printable-encode'STREAM_FILTER_READ$params);
       
fputs($fp$string);
       
rewind($fp);
        return 
stream_get_contents($fp);
}

echo 
quoted_printable_encode(str_repeat("hello there "50)." a=1\r\n")."\n";
?>

The filter needs to be restricted to STREAM_FILTER_READ because by default it will get filtered both going into and out of the stream, and will thus get encoded twice.

It should be much faster than using a PHP implementation of the same thing, though note that this will only work in PHP 5.1+.
2006-10-30 12:16:14
http://php5.kiev.ua/manual/ru/ref.stream.html
I can't find any real documentation on the quoted-printable-encode stream filter, but I've gathered info from several places. It seems there are 4 options that can be passed in the param array as in my other note on this subject:

line-length: integer, simply sets line length before a soft break is inserted
line-break-chars: Which char or chars to consider as a line break - note that "\r\n" will only match CRLF, not CR or LF, so make sure it matches your content.
binary: boolean, hex encodes all control chars, including spaces and line breaks, but leaves alphanumerics untouched
force-encode-first: Forcibly hex-encodes the first char on each line, even if it's alphanumeric. This is useful for avoiding corruption in some incompetent mail servers, like Exchange.
2007-11-15 17:13:33
http://php5.kiev.ua/manual/ru/ref.stream.html

    Поддержать сайт на родительском проекте КГБ