Context

Контекстные опции и параметры

PHP предлагает различные контекстные опции и параметры, которые могут быть использованы со всеми файловыми системами и обработчиками потоков (stream wrappers). Контекст создается с помощью функции stream_context_create(). Опции устанавливаются путем вызова stream_context_set_option(), а параметры - путем вызова stream_context_set_params().

<?php
$opts = array(
    'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
    "Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
/* Sends an http request to www.example.com
   with additional headers shown above */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp); fclose($fp);

stream_context_get_options()

  • Возвращает массив настроек на указанном потоке или контексте.

stream_context_set_default()

  • Устанавливает контекст потока по умолчанию, который будет использоваться всякий раз, когда файловые операции (fopen(), file_get_contents(), и т.д.) вызываются без параметра контекста. Используется тот же синтаксис, что и в stream_context_create().

Потоковые фильтры

stream_filter_append()

resource stream_filter_append ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] )

  • Добавляет filtername в список фильтров, прикреплённых к stream.

Строковые

Все эти фильтры служат для того самого, что подразумевают их имена в соответствии с поведением встроенных в PHP функций для работы со строками.

  • string.rot13

    <?php
    $fp = fopen('php://output', 'w');
    stream_filter_append($fp, 'string.rot13');
    fwrite($fp, "This is a test.\n");
    /* Выведет:  Guvf vf n grfg.   */
    ?>
    
  • string.toupper

    <?php
    $fp = fopen('php://output', 'w');
    stream_filter_append($fp, 'string.toupper');
    fwrite($fp, "This is a test.\n");
    /* Выведет:  THIS IS A TEST.   */
    ?>
    
  • string.tolower

    <?php
    $fp = fopen('php://output', 'w');
    stream_filter_append($fp, 'string.tolower');
    fwrite($fp, "This is a test.\n");
    /* Выведет:  this is a test.   */
    ?>
    
  • string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Выведет:  <b>bolded text</b> enlarged to a level 1 heading   */

Преобразовывающие фильтры

convert.base64-encode и convert.base64-decode Использование этих фильтров эквивалентно обработке всех данных потока функциями base64_encode() и base64_decode() соответственно.

Шифрующие фильтры

mcrypt.* и mdecrypt.* обеспечивают симметричное шифрование и дешифрование при помощи libmcrypt.

Компрессионные фильтры

Семейство фильтров, которые используются для компрессии и декомпрессии данных, с использованием библиотеки zlib.