stream_filter_append
(PHP 4 >= 4.3.0, PHP 5)
stream_filter_append -- ストリームにフィルタを付加する
説明
bool
stream_filter_append ( resource stream, string filtername [, int read_write [, mixed params]])
filtername で指定されたフィルタを、
stream に付加されているフィルタのリストに加えます。
このフィルタは、指定された params と共に、
リストの末尾に追加され、ストリームに対する操作の中で最後に呼び出されます。
フィルタをリストの先頭に加えたいときは、stream_filter_prepend()
を使ってください。
デフォルトでは、 stream_filter_append() は
ストリームが読み込み用に開かれている場合は (つまり、オープンモードが
r あるいは + を伴う場合は)、
フィルタを リードフィルタチェイン に追加し、
ストリームが書き出し用に開かれている場合は(つまり、オープンモードが
w か aか、あるいは+ を伴う場合は)、
ライトフィルターチェィンにも追加します。
STREAM_FILTER_READ・
STREAM_FILTER_WRITE・
STREAM_FILTER_ALL を read_writeパラメータに渡すことで、この挙動を変えることができます。
例 1. Controlling where filters are applied
<?php /* ファイルを読み書き用に開く */ $fp = fopen("test.txt","rw");
/* ROT13 フィルタをライトフィルタチェインに付加する。 * リードフィルタチェインには付加しない。*/ stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
/* 単純な文字列をファイルに書き出す。 * この文字列には、出口で ROT13 変換が適用される。 */ fwrite($fp, "This is a test\n");
/* ファイルの最初に戻る */ rewind($fp);
/* 書き出した内容を読み戻す。 * もし、フィルタがリードフィルタチェインにも * 付加されていれば、再び読み出し時に ROT13 が適用され、 * テキストは元の状態に戻るはず。 */ fpassthru($fp);
fclose($fp);
/* 期待される出力 ---------------
Guvf vf n grfg
*/ ?>
|
|
stream_filter_register(),
stream_filter_prepend() も参照下さい。