File: stream-filter-prepend.xml

package info (click to toggle)
php-doc 20241205~git.dfcbb86%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 70,956 kB
  • sloc: xml: 968,269; php: 23,883; javascript: 671; sh: 177; makefile: 37
file content (150 lines) | stat: -rw-r--r-- 5,077 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.stream-filter-prepend" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>stream_filter_prepend</refname>
  <refpurpose>Attach a filter to a stream</refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>resource</type><methodname>stream_filter_prepend</methodname>
   <methodparam><type>resource</type><parameter>stream</parameter></methodparam>
   <methodparam><type>string</type><parameter>filtername</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>read_write</parameter></methodparam>
   <methodparam choice="opt"><type>mixed</type><parameter>params</parameter></methodparam>
  </methodsynopsis>
  <para>
   Adds <parameter>filtername</parameter> to the list of filters
   attached to <parameter>stream</parameter>.
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>stream</parameter></term>
     <listitem>
      <para>
       The target stream.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>filtername</parameter></term>
     <listitem>
      <para>
       The filter name.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>read_write</parameter></term>
     <listitem>
      <para>
       By default, <function>stream_filter_prepend</function> will
       attach the filter to the <literal>read filter chain</literal>
       if the file was opened for reading (i.e. File Mode:
       <literal>r</literal>, and/or <literal>+</literal>).  The filter
       will also be attached to the <literal>write filter chain</literal>
       if the file was opened for writing (i.e. File Mode:
       <literal>w</literal>, <literal>a</literal>, and/or <literal>+</literal>).
       <constant>STREAM_FILTER_READ</constant>,
       <constant>STREAM_FILTER_WRITE</constant>, and/or
       <constant>STREAM_FILTER_ALL</constant> can also be passed to the
       <parameter>read_write</parameter> parameter to override this behavior.
       See <function>stream_filter_append</function> for an example of
       using this parameter.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>params</parameter></term>
     <listitem>
      <para>
       This filter will be added with the specified <parameter>params</parameter>
       to the <emphasis>beginning</emphasis> of the list and will therefore be
       called first during stream operations.  To add a filter to the end of the
       list, use <function>stream_filter_append</function>.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns a resource on success or &false; on failure. The resource can be
   used to refer to this filter instance during a call to
   <function>stream_filter_remove</function>.
  </para>

  <para>
   &false; is returned if <parameter>stream</parameter> is not a resource or
   if <parameter>filtername</parameter> cannot be located.
  </para>
 </refsect1>

 <refsect1 role="notes">
  &reftitle.notes;
  <note>
   <title>When using custom (user) filters</title>
   <simpara>
    <function>stream_filter_register</function> must be called first
    in order to register the desired user filter to <parameter>filtername</parameter>.
   </simpara>
  </note>
  <note>
   <simpara>
    Stream data is read from resources (both local and remote) in chunks,
    with any unconsumed data kept in internal buffers.  When a new
    filter is prepended to a stream, data in the internal buffers,
    which has already been processed through other filters will
    <emphasis>not</emphasis> be reprocessed through the new filter
    at that time.  This differs from the behavior of
    <function>stream_filter_append</function>.
   </simpara>
  </note>
  <note>
   <simpara>
    When a filter is added for read and write, two instances of the filter
    are created. <function>stream_filter_prepend</function> must be called twice 
    with <constant>STREAM_FILTER_READ</constant> and 
    <constant>STREAM_FILTER_WRITE</constant> to get both filter resources.
   </simpara>
  </note>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <simplelist>
   <member><function>stream_filter_register</function></member>
   <member><function>stream_filter_append</function></member>
  </simplelist>
 </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:"~/.phpdoc/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
-->