pollita Mon Mar 31 16:42:25 2003 EDT
Modified files:
/phpdoc/en/appendices wrappers.xml
Log:
Add php://filter target
Index: phpdoc/en/appendices/wrappers.xml
diff -u phpdoc/en/appendices/wrappers.xml:1.10 phpdoc/en/appendices/wrappers.xml:1.11
--- phpdoc/en/appendices/wrappers.xml:1.10 Fri Dec 27 11:49:25 2002
+++ phpdoc/en/appendices/wrappers.xml Mon Mar 31 16:42:25 2003
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.10 $ -->
+<!-- $Revision: 1.11 $ -->
<appendix id="wrappers">
<title>List of Supported Protocols/Wrappers</title>
<para>
@@ -93,8 +93,9 @@
<section id="wrappers.php">
<title>PHP input/output streams</title>
<simpara>
- PHP 3.0.13 and up, <filename>php://output</filename>
- and <filename>php://input</filename> since PHP 4.3
+ <literal>PHP 3.0.13</literal> and up, <filename>php://output</filename>
+ and <filename>php://input</filename> since <literal>PHP 4.3</literal>,
+ <filename>php://filter</filename> since <literal>PHP 5.0</literal>
</simpara>
<itemizedlist>
@@ -103,6 +104,7 @@
<listitem><simpara><filename>php://stderr</filename></simpara></listitem>
<listitem><simpara><filename>php://output</filename></simpara></listitem>
<listitem><simpara><filename>php://input</filename></simpara></listitem>
+ <listitem><simpara><filename>php://filter</filename></simpara></listitem>
</itemizedlist>
<simpara>
@@ -128,6 +130,93 @@
<filename>php://stderr</filename> and
<filename>php://output</filename> are write-only.
</simpara>
+
+ <simpara>
+ <filename>php://filter</filename> is a kind of meta-wrapper designed
+ to permit the application of filters to a stream at the time of
+ opening. This is useful with all-in-one file functions such as
+ <function>readfile</function>, <function>file</function>, and
+ <function>file_get_contents</function> where there is otherwise
+ no opporotunity to apply a filter to the stream prior the contents
+ being read.
+ </simpara>
+ <simpara>
+ The <filename>php://filter</filename> target takes the following
+ 'parameters' as parts of its 'path'.
+ </simpara>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>/resource=<stream to be filtered></literal>
+ (<emphasis>required</emphasis>) This parameter must be located at
+ the end of your <filename>php://filter</filename> specification and
+ should point to the stream which you want filtered.
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+/* This is equivalent to simply:
+ readfile("http://www.example.com");
+ since no filters are actually specified */
+
+readfile("php://filter/resource=http://www.example.com");
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>/read=<filter list to apply to read chain></literal>
+ (<emphasis>optional</emphasis>) This parameter takes one or more
+ filternames separated by the pipe character <literal>|</literal>.
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+/* This will output the contents of
+ www.example.com entirely in uppercase */
+readfile("php://filter/read=string.toupper/resource=http://www.example.com");
+
+/* This will do the same as above
+ but will also ROT13 encode it */
+readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>/write=<filter list to apply to write chain></literal>
+ (<emphasis>optional</emphasis>) This parameter takes one or more
+ filternames separated by the pipe character <literal>|</literal>.
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+/* This will filter the string "Hello World"
+ through the rot13 filter, then write to
+ example.txt in the current directory */
+file_set_contents("php://filter/write=string.rot13/resource=example.txt","Hello
World");
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ </para>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>/<filter list to apply to both chains></literal>
+ (<emphasis>optional</emphasis>) Any filter lists which are not
+ prefixed specifically by <literal>read=</literal> or
+ <literal>write=</literal> will be applied to both the read and
+ write chains (as appropriate).
+ </simpara>
+ </listitem>
+ </itemizedlist>
</section>
<section id="wrappers.compression">
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php