Update to English php.xml

This commit is contained in:
Mikhail Alferov
2024-06-17 02:03:58 +03:00
committed by GitHub
parent 8aec318aeb
commit 6adfcd631f

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: ec6e871a47fa15228aa3299f46fed826422adbc0 Maintainer: mch Status: ready --> <!-- EN-Revision: 8bc832a464e33122e8129f5a623bd845b69fa7e0 Maintainer: mch Status: ready -->
<!-- Reviewed: no --> <!-- Reviewed: no -->
<refentry xml:id="wrappers.php" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" annotations="verify_info:false" role="stream_wrapper"> <refentry xml:id="wrappers.php" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" annotations="verify_info:false" role="stream_wrapper">
<refnamediv> <refnamediv>
@ -10,30 +10,30 @@
<refsect1 role="description"> <refsect1 role="description">
&reftitle.description; &reftitle.description;
<para> <para>
PHP предоставляет несколько разнообразных потоков ввода-вывода, которые позволяют В PHP предусмотрели ряд потоков ввода-вывода, которые открывают
получить доступ к собственным потокам ввода-вывода PHP, к дескрипторам стандартного ввода, вывода и доступ к собственным потокам ввода-вывода PHP, к стандартным файловым дескрипторам ввода, вывода
потока ошибок, к временным файловым потокам в памяти и на диске, и фильтрам, которые и ошибок, к временным файловым потокам в памяти и на диске, и фильтрам, которые
могут манипулировать другими файловыми ресурсами по мере их считывания умеют манипулировать другими файловыми ресурсами по мере их считывания
или записи. или записи.
</para> </para>
<refsect2 xml:id="wrappers.php.std"> <refsect2 xml:id="wrappers.php.std">
<title>php://stdin, php://stdout и php://stderr</title> <title>php://stdin, php://stdout и php://stderr</title>
<simpara> <simpara>
<filename>php://stdin</filename>, <filename>php://stdout</filename> и Потоки <filename>php://stdin</filename>, <filename>php://stdout</filename>
<filename>php://stderr</filename> позволяют получить прямой доступ к соответствующим и <filename>php://stderr</filename> открывают прямой доступ к соответствующему потоку
потокам ввода или вывода процесса PHP. Поток указывает на копию файлового ввода или вывода PHP-процесса. Поток указывает на копию файлового
дескриптора, таким образом, если вы откроете дескриптора, поэтому, если открыть
<filename>php://stdin</filename> <filename>php://stdin</filename>
и потом закроете его, вы закроете только вашу копию дескриптора. Актуальный а потом закрыть его, закроется только копия дескриптора — фактический
поток, на который ссылается <constant>STDIN</constant>, остаётся неизменным. поток, на который ссылается <constant>STDIN</constant>, останется неизменным.
Рекомендуется просто использовать константы <constant>STDIN</constant>, Рекомендуется просто использовать константы <constant>STDIN</constant>,
<constant>STDOUT</constant> и <constant>STDERR</constant> вместо ручного <constant>STDOUT</constant> и <constant>STDERR</constant> вместо ручного
открытия потоков, используя эти обёртки. открытия потоков через эти обёртки.
</simpara> </simpara>
<simpara> <simpara>
Поток <filename>php://stdin</filename> предназначен только для чтения, тогда как Поток <filename>php://stdin</filename> доступен только для чтения, тогда как
<filename>php://stdout</filename> и <filename>php://stderr</filename> предназначены потоки <filename>php://stdout</filename> и <filename>php://stderr</filename>
только для записи. только для записи.
</simpara> </simpara>
</refsect2> </refsect2>
@ -41,20 +41,20 @@
<refsect2 xml:id="wrappers.php.input"> <refsect2 xml:id="wrappers.php.input">
<title>php://input</title> <title>php://input</title>
<simpara> <simpara>
<filename>php://input</filename> является потоком только для чтения, который позволяет вам Поток <filename>php://input</filename> поток только для чтения, который разрешает
читать необработанные данные из тела запроса. читать необработанные данные из тела запроса.
<filename>php://input</filename> недоступен в POST-запросах с Поток <filename>php://input</filename> недоступен в POST-запросах
<literal>enctype="multipart/form-data"</literal>, если с типом кодирования <literal>enctype="multipart/form-data"</literal>, если включили
опция опцию
<link linkend="ini.enable-post-data-reading">enable_post_data_reading</link> включена. <link linkend="ini.enable-post-data-reading">enable_post_data_reading</link>.
</simpara> </simpara>
</refsect2> </refsect2>
<refsect2 xml:id="wrappers.php.output"> <refsect2 xml:id="wrappers.php.output">
<title>php://output</title> <title>php://output</title>
<para> <para>
<filename>php://output</filename> является потоком только для записи, который позволяет вам Поток <filename>php://output</filename> поток только для записи, который разрешает
записать данные в выходной буфер аналогично, как это делают функции записывать данные в механизм буфера вывода так же, как это делают языковые конструкции
<function>print</function> и <function>echo</function>. <function>print</function> и <function>echo</function>.
</para> </para>
</refsect2> </refsect2>
@ -62,7 +62,7 @@
<refsect2 xml:id="wrappers.php.fd"> <refsect2 xml:id="wrappers.php.fd">
<title>php://fd</title> <title>php://fd</title>
<simpara> <simpara>
<filename>php://fd</filename> предоставляет прямой доступ к указанному файловому Поток <filename>php://fd</filename> разрешает прямой доступ к файловому
дескриптору. Например, <filename>php://fd/3</filename> относится к файловому дескриптору. Например, <filename>php://fd/3</filename> относится к файловому
дескриптору 3. дескриптору 3.
</simpara> </simpara>
@ -71,28 +71,28 @@
<refsect2 xml:id="wrappers.php.memory"> <refsect2 xml:id="wrappers.php.memory">
<title>php://memory и php://temp</title> <title>php://memory и php://temp</title>
<simpara> <simpara>
<filename>php://memory</filename> и <filename>php://temp</filename> являются Потоки <filename>php://memory</filename> и <filename>php://temp</filename>
потоками для чтения/записи и позволяют сохранять временные данные в файлоподобной потоки чтения и записи, которые разреашют сохранять временные данные в файлоподобной
обёртке. Единственная разница между ними заключается в том, что обёртке. Единственная разница между ними заключается в том, что
<filename>php://memory</filename> будет всегда хранить данные в оперативной памяти, поток <filename>php://memory</filename> будет всегда хранить данные в оперативной памяти,
тогда как <filename>php://temp</filename> будет использовать временный файл в том случае, когда тогда как <filename>php://temp</filename> будет использовать временный файл, как только
объем хранимой информации достигнет заданного лимита (по умолчанию 2 Мб). объем хранимой информации достигнет предопределённого предела (по умолчанию 2 МБ).
Расположение этого временного файла определяется аналогично функции Расположение этого временного файла определяется аналогично функции
<function>sys_get_temp_dir</function>. <function>sys_get_temp_dir</function>.
</simpara> </simpara>
<simpara> <simpara>
Размер лимита для <filename>php://temp</filename> может устанавливаться путём Ограничением памяти для потока <filename>php://temp</filename> управляют путём
добавления <literal>/maxmemory:NN</literal>, где <literal>NN</literal> это добавления суффикса <literal>/maxmemory:NN</literal>, где <literal>NN</literal>
максимальный размер данных в байтах для хранения в памяти перед использованием временного максимальный размер данных в байтах для хранения в памяти перед тем как PHP создаст временный
файла. файл.
</simpara> </simpara>
<caution> <caution>
<simpara> <simpara>
Модулям PHP может потребоваться стандартный поток ввода-вывода Отдельным PHP-модулям иногда требуется стандартный поток ввода-вывода
и они могут попытаться преобразовать заданный поток в стандартный поток ввода-вывода. и модули могут попытаться преобразовать заданный поток в стандартный поток ввода-вывода.
Это преобразование может завершиться ошибкой для потоков памяти, поскольку для такого приведения Это преобразование может завершиться ошибкой для потоков памяти, поскольку для такого приведения
необходима функция <function>fopencookie</function> языка Си. необходима функция <function>fopencookie</function> языка C.
Такая функция языка Си <emphasis>недоступна</emphasis> в операционных системах Windows. Такая функция языка C <emphasis>недоступна</emphasis> в операционных системах Windows.
</simpara> </simpara>
</caution> </caution>
</refsect2> </refsect2>
@ -100,12 +100,12 @@
<refsect2 xml:id="wrappers.php.filter"> <refsect2 xml:id="wrappers.php.filter">
<title>php://filter</title> <title>php://filter</title>
<simpara> <simpara>
<filename>php://filter</filename> это вид мета-обёртки, предназначенный для Поток <filename>php://filter</filename> — вид мета-обёртки, которая разрешает
разрешения применения <link linkend="filters">фильтров</link> к применять <link linkend="filters">фильтры</link>
потоку во время открытия. Это полезно для функционально полных файловых функций, к потоку во время открытия. Это полезно при работе с универсальными файловыми функциями
таких как <function>readfile</function>, <function>file</function> и <function>file_get_contents</function>, наподобие <function>readfile</function>, <function>file</function> и <function>file_get_contents</function>,
где нет возможности применить фильтр к потоку до того, как где иначе нет возможности применить фильтр к потоку до считывания
содержимое будет прочитано. содержимого.
</simpara> </simpara>
<para> <para>
Поток <filename>php://filter</filename> принимает следующие параметры Поток <filename>php://filter</filename> принимает следующие параметры
@ -129,7 +129,7 @@
<literal>resource=&lt;поток для фильтрации&gt;</literal> <literal>resource=&lt;поток для фильтрации&gt;</literal>
</entry> </entry>
<entry> <entry>
Этот параметр является необходимым. Он указывает потоку, что его Этот параметр обязателен. Он указывает поток, который
необходимо отфильтровать. необходимо отфильтровать.
</entry> </entry>
</row> </row>
@ -138,8 +138,8 @@
<literal>read=&lt;список фильтров для применения к цепочке чтения&gt;</literal> <literal>read=&lt;список фильтров для применения к цепочке чтения&gt;</literal>
</entry> </entry>
<entry> <entry>
Этот параметр является необязательным. Одно или несколько имён фильтров может быть указано Этот параметр необязателен. Здесь можно указать одно или несколько имён фильтров
здесь, разделённых вертикальной чертой (<literal>|</literal>). через символ вертикальной черты (<literal>|</literal>).
</entry> </entry>
</row> </row>
<row> <row>
@ -147,18 +147,18 @@
<literal>write=&lt;список фильтров для применения к цепочке записи&gt;</literal> <literal>write=&lt;список фильтров для применения к цепочке записи&gt;</literal>
</entry> </entry>
<entry> <entry>
Этот параметр является необязательным. Одно или несколько имён фильтров может быть указано Этот параметр необязателен. Здесь можно указать одно или несколько имён фильтров
здесь, разделённых вертикальной чертой (<literal>|</literal>). через символ вертикальной черты (<literal>|</literal>).
</entry> </entry>
</row> </row>
<row> <row>
<entry> <entry>
<literal>&lt;список фильтров для применения к обеим цепочкам чтения и записи&gt;</literal> <literal>&lt;список фильтров для применения к обеим цепочкам&gt;</literal>
</entry> </entry>
<entry> <entry>
Любой список фильтров, которые используются без префиксов <literal>read=</literal> Любые списки фильтров без префикса <literal>read=</literal>
или <literal>write=</literal>, будет применён к обоим потокам на чтение и на запись или <literal>write=</literal> будут применяться как к цепочкам чтения, так и к цепочкам
при необходимости. записи.
</entry> </entry>
</row> </row>
</tbody> </tbody>
@ -173,8 +173,8 @@
<para> <para>
<table> <table>
<title> <title>
Основная информация (для <literal>php://filter</literal> смотрите Краткое описание обёртки (для потока <literal>php://filter</literal> смотрите
информацию по обёртке, которая подвергается фильтрации) информацию по фильтруемой обёртке)
</title> </title>
<tgroup cols="2"> <tgroup cols="2">
<thead> <thead>
@ -281,21 +281,23 @@
<example><!-- {{{ --> <example><!-- {{{ -->
<title>php://temp/maxmemory</title> <title>php://temp/maxmemory</title>
<para> <para>
Этот необязательный параметр позволяет установить лимит памяти до того, как Этот необязательный параметр разрешает установить ограничение памяти до того, как
<filename>php://temp</filename> начнёт использовать временный файл. поток <filename>php://temp</filename> начнёт использовать временный файл.
</para> </para>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
// Установка предела в 5 MB.
// Устанавливаем предел в 5 МБ
$fiveMBs = 5 * 1024 * 1024; $fiveMBs = 5 * 1024 * 1024;
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+'); $fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');
fputs($fp, "hello\n"); fputs($fp, "hello\n");
// Читаем то, что мы записали. // Читаем то, что записали
rewind($fp); rewind($fp);
echo stream_get_contents($fp); echo stream_get_contents($fp);
?> ?>
]]> ]]>
</programlisting> </programlisting>
@ -303,16 +305,17 @@ echo stream_get_contents($fp);
<example><!-- {{{ --> <example><!-- {{{ -->
<title>php://filter/resource=&lt;поток для фильтрации&gt;</title> <title>php://filter/resource=&lt;поток для фильтрации&gt;</title>
<para> <para>
Этот параметр должен быть расположен в Этот параметр должен находиться
конце вашей спецификации <filename>php://filter</filename> и в конце спецификации <filename>php://filter</filename>
должен указывать на поток, который вы хотите фильтровать. и указывать на поток, который необходимо отфильтровать.
</para> </para>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
/* Это просто эквивалентно: /* Это просто эквивалентно:
readfile("http://www.example.com"); readfile("http://www.example.com");
так как на самом деле фильтры не указаны */ поскольку на самом деле фильтры не указали */
readfile("php://filter/resource=http://www.example.com"); readfile("php://filter/resource=http://www.example.com");
?> ?>
@ -328,6 +331,7 @@ readfile("php://filter/resource=http://www.example.com");
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
/* Этот скрипт выведет содержимое /* Этот скрипт выведет содержимое
www.example.com полностью в верхнем регистре */ www.example.com полностью в верхнем регистре */
readfile("php://filter/read=string.toupper/resource=http://www.example.com"); readfile("php://filter/read=string.toupper/resource=http://www.example.com");
@ -335,6 +339,7 @@ readfile("php://filter/read=string.toupper/resource=http://www.example.com");
/* Этот скрипт делает тоже самое, что вверхний, но /* Этот скрипт делает тоже самое, что вверхний, но
будет также кодировать алгоритмом ROT13 */ будет также кодировать алгоритмом ROT13 */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com"); readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?> ?>
]]> ]]>
</programlisting> </programlisting>
@ -342,16 +347,18 @@ readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.exam
<example><!-- {{{ --> <example><!-- {{{ -->
<title>php://filter/write=&lt;список фильтров для применения к цепочке записи&gt;</title> <title>php://filter/write=&lt;список фильтров для применения к цепочке записи&gt;</title>
<para> <para>
Этот параметр принимает один или более Этот параметр принимает одно
имён фильтров, разделённых вертикальной чертой <literal>|</literal>. или несколько имён фильтров, разделённых вертикальной чертой <literal>|</literal>.
</para> </para>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
/* Этот скрипт будет фильтровать строку "Hello World" /* Этот скрипт будет фильтровать строку "Hello World"
через фильтр rot13, затем записывать результат в через фильтр rot13, затем записывать результат
файл example.txt в текущей директории */ в файл example.txt в текущем каталоге */
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World"); file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?> ?>
]]> ]]>
</programlisting> </programlisting>
@ -359,7 +366,7 @@ file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello
<example> <example>
<title>php://memory и php://temp нельзя переиспользовать</title> <title>php://memory и php://temp нельзя переиспользовать</title>
<para> <para>
<filename>php://memory</filename> и <filename>php://temp</filename> Потоки <filename>php://memory</filename> и <filename>php://temp</filename>
нельзя переиспользовать, то есть после закрытия потоков невозможно нельзя переиспользовать, то есть после закрытия потоков невозможно
сослаться на них снова. сослаться на них снова.
</para> </para>