quick lesson in using stream filters

类别:编程语言 点击:0 评论:0 推荐:

Sara Golemon在新闻组发了一篇关于在PHP扩展中如何使用stream filters的文章,参考如下:

If all you want to do is use an already implemented one just do this:

  php_stream *stream;
  php_stream_filter *filter;
  zval *arguments = NULL; /* Populate this with value(s) appropriate to the filter */

  stream = php_stream_open_wrapper(.....blah blah blah.....);
  filter = php_stream_filter_create("filtername", arguments, php_stream_is_persistent(stream) TSRMLS_CC);
  /* Or &stream->writefilters as appropriate */
  php_stream_filter_append(&stream->readfilters, filter);

  /* Of course, in the real world you'll want to check both stream and filter for NULL as they may have failed to instantiate */

That said, I don't think iconv.* will be any help.  It only covers
base64_(en|de)code() and quoted_printable_(en|de)code().

Filter implementation is a bit trickier.  Take a look at
ext/standard/filters.c for more info on that.  If you come up with a UTF
converter, I'm sure it can be added to the standard set of filters.

-Sara

"L0t3k" <cshmoove@xxxxxxxxxxxxx> wrote in message
news:20040823142259.47665.qmail@xxxxxxxxxxxxxxx
> can anyone give a hint as to how to use stream filters from an extension ?
>
> i have to parse input files which may be in a variety of encodings (mainly
> UTF8), and processing is done internally in UTF16.
>
> i noticed that there is an iconv filter, but i havent a clue (even after
> googling) of how to use it.
>
> l0t3k

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

 

 

本文地址:http://com.8s8s.com/it/it27956.htm