Filters sound great... but everything comes with a price.

One of the aims of the filter API is code re-use; bzip2 stream is really just a file stream with bzip2 (de)compression added on top. So why not code it that way?

Consider writing a more complex custom stream if you really must be able to fseek().

There is a filter API in 4.3.x, but it is not compatible with the much better PHP 5 API, so I'm not telling anyone how to use it.