php_user_filter::filter
(PHP 5, PHP 7)
php_user_filter::filter — フィルタを適用するときにコールされる
説明
public php_user_filter::filter
( resource
$in
, resource $out
, int &$consumed
, bool $closing
) : intこのメソッドがコールされるのは、アタッチしたストリームとの間で (fread() や fwrite() による) データの読み書きを行ったときです。
パラメータ
-
in -
inは バケット群 を指すリソースで、 この中には一つあるいは複数の バケット オブジェクトが含まれています。 このオブジェクトに、フィルタ対象のデータが含まれます。 -
out -
outはもう一つの バケット群 を指すリソースで、 変更した内容をここに保存します。 -
consumed -
consumedは常に参照渡しとする必要があります。 フィルタで読み込んだり変更したりしたデータの長さをここで加算します。 大半の場合、各 $bucket 上で $bucket->datalen をコールするたびにconsumedを増やすことになります。 -
closing -
ストリームが終了処理の最中である場合 (つまり、フィルタチェインの最後の処理を行っている場合) に、
closingパラメータがTRUEとなります。
返り値
filter() メソッドは、処理を終えたときに次のいずれかの値を返す必要があります。
| 返り値 | 意味 |
|---|---|
PSFS_PASS_ON |
フィルタの処理が成功し、データが
out バケット群
に保存されました。
|
PSFS_FEED_ME |
フィルタの処理は成功しましたが、返すデータはありません。 ストリームあるいは一つ前のフィルタから、さらにデータが必要です。 |
PSFS_ERR_FATAL (デフォルト) |
フィルタで対処不能なエラーが発生し、処理を続行できません。 |