mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-17 17:38:54 +00:00

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@159518 c90b9560-bf6c-de11-be94-00142212c4b1
774 lines
25 KiB
XML
774 lines
25 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision: 1.38 $ -->
|
|
<appendix id="wrappers">
|
|
<title>List of Supported Protocols/Wrappers</title>
|
|
<para>
|
|
The following is a list of the various URL style protocols that
|
|
PHP has built-in for use with the filesystem functions such as
|
|
<function>fopen</function> and <function>copy</function>.
|
|
In addition to these wrappers, as of <literal>PHP 4.3.0</literal>, you can write
|
|
your own wrappers using PHP script and
|
|
<function>stream_wrapper_register</function>.
|
|
</para>
|
|
|
|
<section id="wrappers.file">
|
|
<title>Filesystem</title>
|
|
<simpara>All versions of PHP. Explicitly using <filename>file://</filename> since <literal>PHP 4.3.0</literal></simpara>
|
|
|
|
<itemizedlist>
|
|
<listitem><simpara><filename>/path/to/file.ext</filename></simpara></listitem>
|
|
<listitem><simpara><filename>relative/path/to/file.ext</filename></simpara></listitem>
|
|
<listitem><simpara><filename>fileInCwd.ext</filename></simpara></listitem>
|
|
<listitem><simpara><filename>C:/path/to/winfile.ext</filename></simpara></listitem>
|
|
<listitem><simpara><filename>C:\path\to\winfile.ext</filename></simpara></listitem>
|
|
<listitem><simpara><filename>\\smbserver\share\path\to\winfile.ext</filename></simpara></listitem>
|
|
<listitem><simpara><filename>file:///path/to/file.ext</filename></simpara></listitem>
|
|
</itemizedlist>
|
|
|
|
<simpara>
|
|
<filename>file://</filename> is the default wrapper used with PHP and represents the local filesystem.
|
|
When a relative path is specified (a path which does not begin with /, \, \\, or a windows drive letter)
|
|
the path provided will be applied against the current working directory. In many cases this is the
|
|
directory in which the script resides unless it has been changed. Using the CLI sapi, this defaults
|
|
to the directory from which the script was called.
|
|
</simpara>
|
|
|
|
<simpara>
|
|
With some functions, such as <function>fopen</function> and <function>file_get_contents</function>,
|
|
<literal>include_path</literal> may be optionally searched for relative paths as well.
|
|
</simpara>
|
|
|
|
<para>
|
|
<table>
|
|
<title>Wrapper Summary</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Attribute</entry>
|
|
<entry>Supported</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Restricted by <literal>allow_url_fopen</literal>.</entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Reading</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Writing</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Appending</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Simultaneous Reading and Writing</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>stat</function></entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>unlink</function></entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>rename</function></entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>mkdir</function></entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>rmdir</function></entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</section>
|
|
|
|
<section id="wrappers.http">
|
|
<title>HTTP and HTTPS</title>
|
|
<simpara>PHP 3, PHP 4, PHP 5. <filename>https://</filename> since <literal>PHP 4.3.0</literal></simpara>
|
|
|
|
<itemizedlist>
|
|
<listitem><simpara><filename>http://example.com</filename></simpara></listitem>
|
|
<listitem><simpara><filename>http://example.com/file.php?var1=val1&var2=val2</filename></simpara></listitem>
|
|
<listitem><simpara><filename>http://user:password@example.com</filename></simpara></listitem>
|
|
<listitem><simpara><filename>https://example.com</filename></simpara></listitem>
|
|
<listitem><simpara><filename>https://example.com/file.php?var1=val1&var2=val2</filename></simpara></listitem>
|
|
<listitem><simpara><filename>https://user:password@example.com</filename></simpara></listitem>
|
|
</itemizedlist>
|
|
|
|
<simpara>Allows read-only access to files/resources via HTTP 1.0,
|
|
using the HTTP GET method. A <literal>Host:</literal> header is sent with the request
|
|
to handle name-based virtual hosts. If you have configured
|
|
a <link linkend="ini.user-agent">user_agent</link> string using
|
|
your ini file or the stream context, it will also be included
|
|
in the request.
|
|
</simpara>
|
|
&warn.ssl-non-standard;
|
|
<simpara>
|
|
Redirects have been supported since PHP 4.0.5; if you are using
|
|
an earlier version you will need to include trailing slashes in
|
|
your URLs. If it's important to know the URL of the resource where
|
|
your document came from (after all redirects have been processed),
|
|
you'll need to process the series of response headers returned by the
|
|
stream.
|
|
</simpara>
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$url = 'http://www.example.com/redirecting_page.php';
|
|
|
|
$fp = fopen($url, 'r');
|
|
|
|
/* Prior to PHP 4.3.0 use $http_response_header
|
|
instead of stream_get_meta_data() */
|
|
foreach(stream_get_meta_data($fp) as $response) {
|
|
|
|
/* Were we redirected? */
|
|
if (substr(strtolower($response), 0, 10) == 'location: ') {
|
|
/* update $url with where we were redirected to */
|
|
$url = substr($response, 10);
|
|
}
|
|
|
|
}
|
|
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
<simpara>
|
|
The stream allows access to the <emphasis>body</emphasis> of
|
|
the resource; the headers are stored in the
|
|
<varname>$http_response_header</varname> variable.
|
|
Since <literal>PHP 4.3.0</literal>, the headers are available using
|
|
<function>stream_get_meta_data</function>.
|
|
</simpara>
|
|
<simpara>
|
|
HTTP connections are read-only; you cannot write data or copy
|
|
files to an HTTP resource.
|
|
</simpara>
|
|
<note>
|
|
<simpara>HTTPS is supported starting from <literal>PHP 4.3.0</literal>, if you
|
|
have compiled in support for OpenSSL.
|
|
</simpara>
|
|
</note>
|
|
<para>
|
|
<table>
|
|
<title>Wrapper Summary</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Attribute</entry>
|
|
<entry>Supported</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Restricted by <literal>allow_url_fopen</literal>.</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Reading</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Writing</entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Appending</entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Simultaneous Reading and Writing</entry>
|
|
<entry>N/A</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>stat</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>unlink</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>rename</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>mkdir</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>rmdir</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
<para>
|
|
<table>
|
|
<title>Context options (as of <literal>PHP 5.0.0</literal>)</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Name</entry>
|
|
<entry>Usage</entry>
|
|
<entry>Default</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>method</literal></entry>
|
|
<entry>
|
|
<constant>GET</constant>, <constant>POST</constant>, or
|
|
any other HTTP method supported by the remote server.
|
|
</entry>
|
|
<entry><constant>GET</constant></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>header</literal></entry>
|
|
<entry>Additional headers to be sent during request. Values
|
|
in this option will override other values (such as
|
|
<literal>User-agent:</literal>, <literal>Host:</literal>,
|
|
and <literal>Authentication:</literal>).
|
|
</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>user_agent</literal></entry>
|
|
<entry>Value to send with User-Agent: header. This value will
|
|
only be used if user-agent is <emphasis>not</emphasis> specified
|
|
in the <literal>header</literal> context option above.
|
|
</entry>
|
|
<entry>
|
|
&php.ini; setting: <literal>user_agent</literal>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>content</literal></entry>
|
|
<entry>
|
|
Additional data to be sent after the headers. Typically used
|
|
with POST or PUT requests.
|
|
</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>proxy</literal></entry>
|
|
<entry>
|
|
URI specifying address of proxy server. (e.g.
|
|
<literal>tcp://proxy.example.com:5100</literal> ).
|
|
</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>request_fulluri</literal></entry>
|
|
<entry>
|
|
When set to &true;, the entire URI will be used when
|
|
constructing the request. (i.e.
|
|
<literal>GET http://www.example.com/path/to/file.html HTTP/1.0</literal>).
|
|
While this is a non-standard request format, some
|
|
proxy servers require it.
|
|
</entry>
|
|
<entry>&false;</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
|
|
<note>
|
|
<title>Underlying socket stream context options</title>
|
|
<simpara>
|
|
Additional context options may be supported by the
|
|
<link linkend="transports.inet">underlying transport</link>
|
|
For <literal>http://</literal> streams, refer to context
|
|
options for the <literal>tcp://</literal> transport. For
|
|
<literal>https://</literal> streams, refer to context options
|
|
for the <literal>ssl://</literal> transport.
|
|
</simpara>
|
|
</note>
|
|
</section>
|
|
|
|
<section id="wrappers.ftp">
|
|
<title>FTP and FTPS</title>
|
|
<simpara>PHP 3, PHP 4, PHP 5. <filename>ftps://</filename> since <literal>PHP 4.3.0</literal></simpara>
|
|
|
|
<itemizedlist>
|
|
<listitem><simpara><filename>ftp://example.com/pub/file.txt</filename></simpara></listitem>
|
|
<listitem><simpara><filename>ftp://user:password@example.com/pub/file.txt</filename></simpara></listitem>
|
|
<listitem><simpara><filename>ftps://example.com/pub/file.txt</filename></simpara></listitem>
|
|
<listitem><simpara><filename>ftps://user:password@example.com/pub/file.txt</filename></simpara></listitem>
|
|
</itemizedlist>
|
|
|
|
<simpara>
|
|
Allows read access to existing files and creation of new files
|
|
via FTP. If the server does not support passive mode ftp, the
|
|
connection will fail.
|
|
</simpara>
|
|
<simpara>
|
|
You can open files for either reading or writing, but not both
|
|
simultaneously. If the remote file already exists on the ftp
|
|
server and you attempt to open it for writing but have not specified
|
|
the context option <literal>overwrite</literal>, the connection
|
|
will fail. If you need to overwrite existing files over ftp,
|
|
specify the <literal>overwrite</literal> option in the context
|
|
and open the file for writing. Alternatively, you can
|
|
use the <link linkend="ref.ftp">FTP extension</link>.
|
|
</simpara>
|
|
<note>
|
|
<title>Appending</title>
|
|
<simpara>
|
|
As of <literal>PHP 5.0.0</literal> files may be appended via the
|
|
<literal>ftp://</literal> URL wrapper. In prior versions, attempting
|
|
to append to a file via <literal>ftp://</literal> will result in failure.
|
|
</simpara>
|
|
</note>
|
|
<simpara>
|
|
<filename>ftps://</filename> was introduced in <literal>PHP 4.3.0</literal>.
|
|
It is the same as <filename>ftp://</filename>,
|
|
but attempts to negotiate a secure connection with the ftp server.
|
|
If the server does not support SSL, then the connection falls back
|
|
to regular unencrypted ftp.
|
|
</simpara>
|
|
<note>
|
|
<simpara>FTPS is supported starting from <literal>PHP 4.3.0</literal>, if you
|
|
have compiled in support for OpenSSL.
|
|
</simpara>
|
|
</note>
|
|
<para>
|
|
<table>
|
|
<title>Wrapper Summary</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Attribute</entry>
|
|
<entry><literal>PHP 4</literal></entry>
|
|
<entry><literal>PHP 5</literal></entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Restricted by <literal>allow_url_fopen</literal>.</entry>
|
|
<entry>Yes</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Reading</entry>
|
|
<entry>Yes</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Writing</entry>
|
|
<entry>Yes (new files only)</entry>
|
|
<entry>Yes (new files/existing files with <parameter>overwrite</parameter>)</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Appending</entry>
|
|
<entry>No</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Simultaneous Reading and Writing</entry>
|
|
<entry>No</entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>stat</function></entry>
|
|
<entry>No</entry>
|
|
<entry>
|
|
<function>filesize</function>, <function>filetype</function>,
|
|
<function>file_exists</function>, <function>is_file</function>,
|
|
and <function>is_dir</function> elements only.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>unlink</function></entry>
|
|
<entry>No</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>rename</function></entry>
|
|
<entry>No</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>mkdir</function></entry>
|
|
<entry>No</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>rmdir</function></entry>
|
|
<entry>No</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
<para>
|
|
<table>
|
|
<title>Context options (as of <literal>PHP 5.0.0</literal>)</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Name</entry>
|
|
<entry>Usage</entry>
|
|
<entry>Default</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>overwrite</literal></entry>
|
|
<entry>
|
|
Allow overwriting of already existing files on remote server.
|
|
Applies to write mode (uploading) only.
|
|
</entry>
|
|
<entry>&false; (Disabled)</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>resume_pos</literal></entry>
|
|
<entry>
|
|
File offset at which to begin transfer.
|
|
Applies to read mode (downloading) only.
|
|
</entry>
|
|
<entry>0 (Beginning of File)</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
<note>
|
|
<title>Underlying socket stream context options</title>
|
|
<simpara>
|
|
Additional context options may be supported by the
|
|
<link linkend="transports.inet">underlying transport</link>
|
|
For <literal>ftp://</literal> streams, refer to context
|
|
options for the <literal>tcp://</literal> transport. For
|
|
<literal>ftps://</literal> streams, refer to context options
|
|
for the <literal>ssl://</literal> transport.
|
|
</simpara>
|
|
</note>
|
|
</section>
|
|
|
|
<section id="wrappers.php">
|
|
<title>PHP input/output streams</title>
|
|
<simpara>
|
|
<literal>PHP 3.0.13</literal> and up, <filename>php://output</filename>
|
|
and <filename>php://input</filename> since <literal>PHP 4.3.0</literal>,
|
|
<filename>php://filter</filename> since <literal>PHP 5.0.0</literal>
|
|
</simpara>
|
|
|
|
<itemizedlist>
|
|
<listitem><simpara><filename>php://stdin</filename></simpara></listitem>
|
|
<listitem><simpara><filename>php://stdout</filename></simpara></listitem>
|
|
<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>
|
|
<filename>php://stdin</filename>, <filename>php://stdout</filename>
|
|
and <filename>php://stderr</filename> allow access to
|
|
the corresponding input or output stream of the PHP process.
|
|
</simpara>
|
|
<simpara>
|
|
<filename>php://output</filename> allows you to write to the
|
|
output buffer mechanism in the same way as
|
|
<function>print</function> and <function>echo</function>.
|
|
</simpara>
|
|
<simpara>
|
|
<filename>php://input</filename> allows you to read raw POST data.
|
|
It is a less memory intensive alternative to
|
|
<varname>$HTTP_RAW_POST_DATA</varname> and does not need any
|
|
special &php.ini; directives.
|
|
</simpara>
|
|
<simpara>
|
|
<filename>php://stdin</filename> and
|
|
<filename>php://input</filename> are read-only, whereas
|
|
<filename>php://stdout</filename>,
|
|
<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 opportunity 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>
|
|
<para>
|
|
<table>
|
|
<title>
|
|
Wrapper Summary (For <literal>php://filter</literal>,
|
|
refer to summary of wrapper being filtered.)
|
|
</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Attribute</entry>
|
|
<entry>Supported</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Restricted by <literal>allow_url_fopen</literal>.</entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Reading</entry>
|
|
<entry>
|
|
<literal>php://stdin</literal> and
|
|
<literal>php://input</literal> only.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Writing</entry>
|
|
<entry>
|
|
<literal>php://stdout</literal>,
|
|
<literal>php://stderr</literal>, and
|
|
<literal>php://output</literal> only.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Appending</entry>
|
|
<entry>
|
|
<literal>php://stdout</literal>,
|
|
<literal>php://stderr</literal>, and
|
|
<literal>php://output</literal> only. (Equivalent to writing)
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Simultaneous Reading and Writing</entry>
|
|
<entry>No. These wrappers are unidirectional.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>stat</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>unlink</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>rename</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>mkdir</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>rmdir</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</section>
|
|
|
|
<section id="wrappers.compression">
|
|
<title>Compression Streams</title>
|
|
<simpara><filename>zlib:</filename> PHP 4.0.4 - PHP 4.2.3 (systems with fopencookie only)</simpara>
|
|
<simpara><filename>compress.zlib://</filename> and <filename>compress.bzip2://</filename> PHP 4.3.0 and up</simpara>
|
|
|
|
<itemizedlist>
|
|
<listitem><simpara><filename>zlib:</filename></simpara></listitem>
|
|
<listitem><simpara><filename>compress.zlib://</filename></simpara></listitem>
|
|
<listitem><simpara><filename>compress.bzip2://</filename></simpara></listitem>
|
|
</itemizedlist>
|
|
|
|
<simpara>
|
|
<filename>zlib:</filename> works like <function>gzopen</function>, except that the
|
|
stream can be used with <function>fread</function> and the other
|
|
filesystem functions. This is deprecated as of <literal>PHP 4.3.0</literal> due
|
|
to ambiguities with filenames containing ':' characters; use
|
|
<filename>compress.zlib://</filename> instead.
|
|
</simpara>
|
|
|
|
<simpara>
|
|
<filename>compress.zlib://</filename> and
|
|
<filename>compress.bzip2://</filename> are equivalent to
|
|
<function>gzopen</function> and <function>bzopen</function>
|
|
respectively, and operate even on systems that do not support
|
|
fopencookie.
|
|
</simpara>
|
|
<para>
|
|
<table>
|
|
<title>Wrapper Summary</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Attribute</entry>
|
|
<entry>Supported</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Restricted by <literal>allow_url_fopen</literal>.</entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Reading</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Writing</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Appending</entry>
|
|
<entry>Yes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Allows Simultaneous Reading and Writing</entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>stat</function></entry>
|
|
<entry>
|
|
No, use the normal <literal>file://</literal> wrapper
|
|
to stat compressed files.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>unlink</function></entry>
|
|
<entry>
|
|
No, use the normal <literal>file://</literal> wrapper
|
|
to unlink compressed files.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>rename</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>mkdir</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Supports <function>rmdir</function></entry>
|
|
<entry>No</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</section>
|
|
</appendix>
|
|
|
|
<!-- 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
|
|
-->
|