--TEST-- stream filter - reading --FILE-- data = strtoupper($bucket->data); $consumed += $bucket->datalen; stream_bucket_append($out, $bucket); $output = 1; } if ($closing) { $bucket = stream_bucket_new($this->stream, "\n===close===\n"); stream_bucket_append($out, $bucket); $output = 1; } return $output ? PSFS_PASS_ON : PSFS_FEED_ME; } } stream_filter_register("strtoupper", "filter") or die("Failed to register filter"); if ($f = fopen(__FILE__, "rb")) { stream_filter_append($f, "strtoupper"); while (!feof($f)) { echo fread($f, 8192); } fclose($f); } echo "Done\n"; ?> --EXPECTF-- %sTEST DATA = STRTOUPPER($BUCKET->DATA); $CONSUMED += $BUCKET->DATALEN; STREAM_BUCKET_APPEND($OUT, $BUCKET); $OUTPUT = 1; } IF ($CLOSING) { $BUCKET = STREAM_BUCKET_NEW($THIS->STREAM, "\N===CLOSE===\N"); STREAM_BUCKET_APPEND($OUT, $BUCKET); $OUTPUT = 1; } RETURN $OUTPUT ? PSFS_PASS_ON : PSFS_FEED_ME; } } STREAM_FILTER_REGISTER("STRTOUPPER", "FILTER") OR DIE("FAILED TO REGISTER FILTER"); IF ($F = FOPEN(__FILE__, "RB")) { STREAM_FILTER_APPEND($F, "STRTOUPPER"); WHILE (!FEOF($F)) { ECHO FREAD($F, 8192); } FCLOSE($F); } ECHO "DONE\N"; ?> ===close=== Done