stream_filter_remove()

从指定的流上移除一个过滤器

首字母:S

函数名称:stream_filter_remove()

适用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7

函数描述:stream_filter_remove() 函数用于从指定的流上移除一个过滤器。

语法:bool stream_filter_remove(resource $stream_filter)

参数:

  • $stream_filter:要移除的过滤器资源。

返回值:如果成功移除过滤器,则返回 true;否则返回 false。

示例:

// 创建一个过滤器
class MyFilter extends php_user_filter {
 public function filter($in, $out, &$consumed, $closing) {
 while ($bucket = stream_bucket_make_writeable($in)) {
 $bucket->data = strtoupper($bucket->data);
 $consumed += $bucket->datalen;
 stream_bucket_append($out, $bucket);
 }
 return PSFS_PASS_ON;
 }
}
// 打开文件流
$handle = fopen('input.txt', 'r');
// 添加过滤器
stream_filter_append($handle, 'MyFilter');
// 读取并输出文件内容
while (!feof($handle)) {
 echo fgets($handle);
}
// 移除过滤器
stream_filter_remove($handle);
// 关闭文件流
fclose($handle);

在上面的示例中,我们首先创建了一个名为 MyFilter 的自定义过滤器,它会将输入流中的字符转换为大写。然后我们打开一个文件流,并使用 stream_filter_append() 函数将 MyFilter 过滤器附加到该流上。接着我们使用 fgets() 函数读取并输出文件内容,这时会触发 MyFilter 的 filter() 方法对数据进行处理。最后,我们使用 stream_filter_remove() 函数移除 MyFilter 过滤器,并关闭文件流。

请注意,移除过滤器后,流将不再受过滤器的影响。

同首字母函数