関数・クラス解説

stream_filter_append

version:PHP 4 >= 4.3.0, PHP 5, PHP 7 (公式)

ストリームにフィルタを付加する

公式リファレンス

書式

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

説明

filtername で指定されたフィルタを、 stream に付加されているフィルタのリストに加えます。

パラメータ

stream
対象となるストリーム。
filtername
フィルタ名。
read_write
デフォルトでは、 stream_filter_append() は ストリームが読み込み用に開かれている場合は (つまり、オープンモードが r あるいは + を伴う場合は)、 フィルタを リードフィルタチェイン に追加し、 ストリームが書き出し用に開かれている場合は(つまり、オープンモードが w か aか、あるいは+ を伴う場合は)、 ライトフィルターチェィンにも追加します。 STREAM_FILTER_READ・ STREAM_FILTER_WRITE・ STREAM_FILTER_ALL を read_writeパラメータに渡すことで、この挙動を変えることができます。
params
このフィルタは、指定された params と共に、 リストの末尾に追加され、ストリームに対する操作の中で最後に呼び出されます。 フィルタをリストの先頭に加えたいときは、stream_filter_prepend() を使ってください。

返値

成功した場合にリソース、失敗した場合に FALSE を返します。 このリソースは、stream_filter_remove() をコールする際にこのフィルタインスタンスを参照するために使用可能です。 FALSE が返されるのは、stream がリソースではない場合や filtername が見つからない場合です。

注意

注意: カスタム(ユーザー)フィルタを使うには カスタムフィルタを filtername に指定するためには、 まず stream_filter_register() 関数でそれを登録しておく 必要があります。
注意: ストリームデータは(ローカルおよびリモートの)リソースからチャンク単位で 読み込まれ、内部バッファに保持されます。新しいフィルタがストリームに 追加されると、内部バッファのデータがその時点でフィルタリングされます。 これは stream_filter_prepend() の挙動とは違います。
注意: フィルタが読み込み用および書き込み用に追加されると、フィルタのインスタンスが 2 つ作成されます。両方のフィルタリソースを取得するには、 STREAM_FILTER_READ と STREAM_FILTER_WRITE で stream_filter_append() を 2 回コールしなければなりません。

サンプル

例1 フィルタの適用される場所を制御する

/* ファイルを読み書き用に開く */ $fp = fopen('test.txt', 'w+'); /* 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() - フィルタをストリームに付加する
  • stream_get_filters() - 登録されているフィルタのリストを取得する
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール