« php_user_filter
php_user_filter::onClose »

php_user_filter::filter

(PHP 5, PHP 7, PHP 8)

php_user_filter::filter — フィルタを適用するときにコールされる

説明

public function 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 (デフォルト) フィルタで対処不能なエラーが発生し、処理を続行できません。

関連キーワード:
フィルタ   filter   user   consumed   バケット   適用   closing   ストリーム   resource   リソース   bucket   成功   onClose   アタッチ   fread   fwrite   読み書き   複数   加算   大半   datalen   最中   チェイン   最後   意味
関連する関数・ページ:
function.filter-id   class.php-user-filter   php-user-filter.onclose   php-user-filter.oncreate   function.stream-filter-remove   filter.configuration