Update realpath.xml

This commit is contained in:
Mikhail Alferov
2024-06-09 20:40:33 +03:00
committed by GitHub
parent db1c011e5d
commit c814d99f3b

View File

@ -14,9 +14,10 @@
<methodparam><type>string</type><parameter>path</parameter></methodparam>
</methodsynopsis>
<para>
<function>realpath</function> раскрывает все символические ссылки,
переходы типа <literal>/./</literal>, <literal>/../</literal> и лишние символы <literal>/</literal> в пути <parameter>path</parameter>,
возвращая канонизированный абсолютный путь к файлу.
Функция <function>realpath</function> разворачивает символические ссылки,
а также разрешает ссылки на относительные пути вида <literal>/./</literal>, <literal>/../</literal>
и лишние символы <literal>/</literal> во входном пути <parameter>path</parameter>,
а затем возвращает канонизированный абсолютный путь к файлу.
</para>
</refsect1>
@ -31,9 +32,8 @@
Проверяемый путь.
<note>
<para>
Несмотря на то, что путь должен быть указан, переданное
значение может быть пустой строкой. В этих случаях
значение интерпретируется как текущая рабочая директория.
Параметр пути хотя и обязательный, но принимает пустую строку.
Тогда функция интерпретирует значение как текущий каталог.
</para>
</note>
</para>
@ -46,38 +46,38 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
В случае успешного выполнения возвращает канонизированный абсолютный путь.
Результирующий путь не содержит символических ссылок и компонентов
наподобие <literal>/./</literal> или '<literal>/../</literal>.
Разделители <literal>\</literal> и <literal>/</literal> в конце пути также удаляются.
Функция возвращает канонизированный абсолютный путь к файлу в случае успешного выполнения.
Результирующий путь не будет содержать символической ссылки и компонентов
<literal>/./</literal> или <literal>/../</literal>.
Функци также удалит разделители <literal>\</literal> и <literal>/</literal> в конце пути.
</para>
<para>
<function>realpath</function> возвращает &false; при неудаче, например,
Функция <function>realpath</function> возвращает &false;, если возникла ошибка, например,
если файл не существует.
</para>
<note>
<para>
Запускаемый скрипт должен иметь права запуска на всех директориях
в проверяемой иерархии, иначе <function>realpath</function> вернёт &false;.
Для скрипта, который запустили, требуются права на выполнение на каждом каталоге
в иерархии, иначе функция <function>realpath</function> вернёт &false;.
</para>
</note>
<note>
<para>
Для регистронезависимых файловых систем, <function>realpath</function> может
нормализовать или не нормализовать регистр символов.
В регистронезависимых файловых системах функция <function>realpath</function>
нормализует или не нормализует регистр символов.
</para>
</note>
<note>
<para>
Функция <function>realpath</function> не будет работать с
файлом внутри архива Phar, так как путь может быть
не реальным, а виртуальным.
Функция <function>realpath</function> не будет работать
с файлом внутри Phar-архива, поскольку такой путь будет виртуальным,
а не реальным.
</para>
</note>
<note>
<para>
В Windows переходы и символические ссылки на каталоги расширяются только
на один уровень.
В ОС Windows точки соединения и символические ссылки на каталоги разворачиваются
только на один уровень.
</para>
</note>
&fs.file.32bit;
@ -91,10 +91,12 @@
<programlisting role="php">
<![CDATA[
<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;
echo realpath('/tmp/') . PHP_EOL;
?>
]]>
</programlisting>
@ -107,17 +109,19 @@ echo realpath('/tmp/') . PHP_EOL;
</screen>
</example>
<example>
<title><function>realpath</function> на Windows</title>
<title>Пример работы функции <function>realpath</function> в ОС Windows</title>
<para>
На Windows <function>realpath</function> изменит пути стиля Unix на
стиль Windows.
В системах Windows функция <function>realpath</function> изменит пути в стиле Unix
на стиль Windows.
</para>
<programlisting role="php">
<![CDATA[
<?php
echo realpath('/windows/system32'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
?>
]]>
</programlisting>