PHP Handbuch
Zurück |  | Nach vorne

# stream_filter_append

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_append -- Attach a filter to a stream.

## Description

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

Adds `filtername` to the list of filters attached to `stream`. This filter will be added with the specified `params` to the end of the list and will therefore be called last during stream operations. To add a filter to the beginning of the list, use stream_filter_prepend().

By default, stream_filter_append() will attach the filter to the `read filter chain` if the file was opened for reading (i.e. File Mode: `r`, and/or `+`). The filter will also be attached to the `write filter chain` if the file was opened for writing (i.e. File Mode: `w`, `a`, and/or `+`). `STREAM_FILTER_READ`, `STREAM_FILTER_WRITE`, and/or `STREAM_FILTER_ALL` can also be passed to the `read_write` parameter to override this behavior.

Beispiel 1. Controlling where filters are applied
`<?php /* Open a test file for reading and writing */ $fp = fopen("test.txt", "rw"); /* Apply the ROT13 filter to the * write filter chain, but not the * read filter chain */ stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE); /* Write a simple string to the file * it will be ROT13 transformed on the * way out */ fwrite($fp, "This is a test\n"); /* Back up to the beginning of the file */ rewind($fp); /* Read the contents of the file back out. * Had the filter been applied to the * read filter chain as well, we would see * the text ROT13ed back to its original state */ fpassthru($fp); fclose($fp); /* Expected Output --------------- Guvf vf n grfg */ ?>`

> When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to `filtername`.

> Anmerkung: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is appended to a stream, data in the internal buffers is processed through the new filter at that time. This differs from the behavior of stream_filter_prepend().

See also stream_filter_register(), and stream_filter_prepend()

Zurück | Zum Anfang | Nach vorne
stream_copy_to_stream | Nach oben | stream_filter_prepend