array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'filters.php', 1 => '利用できるフィルタのリスト', ), 'up' => array ( 0 => 'appendices.php', 1 => '付録', ), 'prev' => array ( 0 => 'resource.php', 1 => 'リソース型の一覧', ), 'next' => array ( 0 => 'filters.string.php', 1 => '文字列フィルタ', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'appendices/filters.xml', ), 'extra_header_links' => array ( 'rel' => 'alternate', 'href' => '/manual/en/feeds/filters.atom', 'type' => 'application/atom+xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
以下は、stream_filter_append() で利用できる 組み込みフィルタのリストです。PHP のバージョンによっては このリスト以外のフィルタがあったり、このリストにあるフィルタが存在 しなかったりするかもしれません。
stream_filter_append() と stream_filter_prepend() のちょっとした違いに ついて説明します。 すべての PHP ストリームはその内部に小さな読み込みバッファ を持っており、ファイルシステムもしくは他のリソースから読み込まれた データはこのバッファに格納されます。このことで、データをより効率的に 扱うことができるのです。リソースがストリームの内部バッファに 取り込まれたら、アプリケーション側で準備ができているかどうかに かかわらずすぐにフィルタ処理が行われます。フィルタが append されていた場合、読み込みバッファに はいってきたデータはすぐにフィルタ処理されます。つまり、バッファの 存在をまったく意識せずに扱えるということです。しかし、もしフィルタが prepend されていた場合、読み込みバッファにデータが 入ってきた段階ではフィルタ処理されません。 リソースから次のデータブロックが読み込まれるまで、フィルタ処理を 待機するのです。
あなたが使っている PHP にどのようなフィルタが登録されているかを 知るには、stream_get_filters() を利用します。