每当从附加流读取数据或向附加流写入数据时,都会调用 PHP php_user_filter::filter() 方法,例如与 fread() 或 fwrite() 函数。
语法
public php_user_filter::filter(in, out, consumed, closing)
参数
in | 必填。 指定一个指向bucket brigade的资源,该资源包含一个或多个bucket对象,其中包含要过滤的数据。 |
out | 必填。 指定一个指向第二个bucket brigade的资源,修改后的bucket应放置在其中。 |
已消耗 | 必填。 它必须始终通过引用声明,并应按过滤器读取和更改的数据长度递增。在大多数情况下,这意味着每个 $bucket 的消耗将增加 $bucket->datalen。 |
关闭 | 必填。 如果流正在关闭过程中(因此这是通过过滤器链的最后一次传递),则此参数将设置为 true。 |
返回值
完成后返回三个值之一。
- PSFS_PASS_ON - 使用中的可用数据成功处理过滤器out bucket brigade。
- PSFS_FEED_ME - 过滤器处理成功,但没有数据可返回。流或先前的过滤器需要更多数据。
- PSFS_ERR_FATAL -(默认)过滤器遇到不可恢复的错误,无法继续。