Changes per Wez and addition of stream_get_filters

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@110545 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Sara Golemon 2003-01-05 04:25:06 +00:00
parent 4ea211d7e1
commit 4f2c2288d0
3 changed files with 138 additions and 21 deletions

View file

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<refentry id="function.stream-get-filters">
<refnamediv>
<refname>stream_get_filters</refname>
<refpurpose>Retrieve list of registered filters</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>array</type><methodname>stream_get_filters</methodname>
<void/>
</methodsynopsis>
<para>
Returns an indexed array containing the name of all stream filters
available on the running system.
</para>
<para>
See Also:
<function>stream_register_filter</function>, and
<function>stream_get_wrappers</function>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- $Revision: 1.2 $ -->
<refentry id="function.stream-register-filter">
<refnamediv>
<refname>stream_register_filter</refname>
@ -45,6 +45,27 @@
so that the next filter in the chain can perform its filter.
When no filters remain, the stream will write <parameter>data</parameter>
in its final form.
<note>
<para>
If your filter alters the length of <parameter>data</parameter>, for
example by removing the first character, before passing onto
<literal>parent::write($data);</literal> it must be certain to include
that stolen character in the return count.
</para>
</note>
<informalexample>
<programlisting role="php">
<![CDATA[
class myfilter extends php_user_filter {
function write($data) {
$data = substr($data,1);
$written_by_parent = parent::write($data);
return ($written_by_parent + 1);
}
}
]]>
</programlisting>
</informalexample>
</para>
<methodsynopsis>
@ -88,13 +109,23 @@
<type>void</type><methodname>oncreate</methodname>
<void/>
</methodsynopsis>
<!-- When is this called? -->
<para>
This method is called during instantiation of the filter class
object. If your filter allocates or initializes any other resources
(such as a buffer), this is the place to do it.
</para>
<methodsynopsis>
<type>void</type><methodname>onclose</methodname>
<void/>
</methodsynopsis>
<!-- When is this called? -->
<para>
This method is called upon filter shutdown (typically, this is also
during stream shutdown), and is executed <emphasis>after</emphasis>
the <literal>flush</literal> method is called. If any resources
were allocated or initialzed during <literal>oncreate</literal>
this would be the time to destroy or dispose of them.
</para>
<para>
The example below implements a filter named <literal>rot13</literal>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.4 $ -->
<!-- $Revision: 1.5 $ -->
<reference id="ref.stream">
<title>Stream functions</title>
<titleabbrev>Streams</titleabbrev>
@ -11,21 +11,33 @@
<simpara>
Streams were introduced with <literal>PHP</literal> 4.3.0 as
a way of generalizing file, network, data compression, and other
opperations which share a common set of functions and uses. In
its simplest definition, a stream is any I/O conduit for exchanging
information. Some streams work on the local filesystem, some
use network connections (sockets), while others might potentially focus
on communication devices such as printers or modems. Because any variety
of stream may be added to <literal>PHP</literal> via the
<function>stream_register_wrapper</function> function, there is no
set limit on what can be done with them. See <xref linkend="wrappers"/>
for a listing of stream wrappers built into <literal>PHP</literal>.
opperations which share a common set of functions and uses. In
its simplest definition, a <literal>stream</literal> is a
<literal>resource</literal> object which exhibits streamable
behavior. That is, it can be read from or written to in a linear
fashion, and may be able to <function>fseek</function> to an
arbitrary locations within the stream.
</simpara>
<simpara>
In addition to streams, support for custom user filters is also available.
While a stream (such as 'http') is designed to communicate with an endpoint,
one or more filters can be placed between the stream and the application to
further process the data as it is read/written.
A <literal>wrapper</literal> is additional code which tells the stream how to handle
specific protocols/encodings. For example, the <literal>http</literal>
wrapper knows how to translate a URL into an <literal>HTTP/1.1</literal>
request for a file on a remote server. There are many wrappers
built into <literal>PHP</literal> by default (See <xref linkend="wrappers"/>),
and additional, custom wrappers may be added either within a
PHP script using <function>stream_register_wrapper</function>,
or directly from an extension using the <xref linkend="streams"/>.
Because any variety of wrapper may be added to <literal>PHP</literal>,
there is no set limit on what can be done with them. To access the list
of currently registered wrappers, use <function>stream_get_wrappers</function>.
</simpara>
<simpara>
A <literal>filter</literal> is a final piece of code which may perform
opperations on data as it is being read from or written to a stream.
Filters may be defined in a <literal>PHP</literal> script using
<function>stream_register_filter</function> or in an extension using the
<xref linkend="streams"/>. To access the list of currently registered filters,
use <function>stream_get_filters</function>.
</simpara>
<para>
A stream is referenced as: <parameter>scheme</parameter>://<parameter>target</parameter>
@ -33,9 +45,11 @@
<listitem>
<simpara>
<parameter>scheme</parameter>(string) -
The name of the stream wrapper to be used. Examples include: file,
The name of the wrapper to be used. Examples include: file,
http, https, ftp, ftps, compress.zlib, compress.bz2, ssl, tls, and php. See
<xref linkend="wrappers"/> for a list of PHP builtin wrappers.
<xref linkend="wrappers"/> for a list of PHP builtin wrappers. If
no wrapper is specified, the function default is used (typically
<literal>file</literal>://).
</simpara>
</listitem>
<listitem>
@ -43,7 +57,7 @@
<parameter>target</parameter> -
Depends on the wrapper used. For filesystem related streams this is
typically a path and filename of the desired file. For network related
streams this is typically a hostname often with a path appended. Again, see
streams this is typically a hostname, often with a path appended. Again, see
<xref linkend="wrappers"/> for a description of targets for builtin streams.
</simpara>
</listitem>
@ -85,7 +99,34 @@
<section id="stream.constants">
&reftitle.constants;
&no.constants;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Constant</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><constant>STREAM_USE_PATH</constant></entry>
<entry><literal>Flag</literal> indicating if the <literal>stream</literal>
used the include path.
</entry>
</row>
<row>
<entry><constant>STREAM_REPORT_ERRORS</constant></entry>
<entry><literal>Flag</literal> indicating if the <literal>wrapper</literal>
if responsible for raising errors using <function>trigger_error</function>
during opening of the stream. If this flag is not set, you
should not raise any errors.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</section>
<section id="stream.errors">