Files
php-doc-ru/reference/filesystem/functions/pathinfo.xml
Sergey Panteleev daef8df962 Обнуление тега Reviewed (#364)
[skip-lint]
[skip-spellcheck]
2021-11-16 13:03:53 +03:00

224 lines
7.1 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 70babd5faf9fc63f08af63dc6781a350d04a3c57 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.pathinfo" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pathinfo</refname>
<refpurpose>Возвращает информацию о пути к файлу</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>array</type><type>string</type></type><methodname>pathinfo</methodname>
<methodparam><type>string</type><parameter>path</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer><constant>PATHINFO_ALL</constant></initializer></methodparam>
</methodsynopsis>
<para>
<function>pathinfo</function> возвращает информацию о
<parameter>path</parameter> в виде ассоциативного массива или
строки, в зависимости от <parameter>flags</parameter>.
</para>
<note>
<para>
Подробнее о получении информации о текущем пути, можно почитать
в разделе <link linkend="language.variables.predefined">Предопределённые зарезервированные переменные</link>.
</para>
</note>
<note>
<para>
<function>pathinfo</function> оперирует входной строкой и не знает фактическую файловую систему
или компоненты пути, такие как "<literal>..</literal>".
</para>
</note>
<caution>
<para>
<function>pathinfo</function> учитывает настройки локали, поэтому
для корректной обработки пути с многобайтными символами должна
быть установлена соответствующая локаль с помощью функции
<function>setlocale</function>.
</para>
</caution>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>path</parameter></term>
<listitem>
<para>
Анализируемый путь.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
Если указан, то задаёт, какой из элементов пути будет возвращён:
<constant>PATHINFO_DIRNAME</constant>,
<constant>PATHINFO_BASENAME</constant>,
<constant>PATHINFO_EXTENSION</constant> и
<constant>PATHINFO_FILENAME</constant>.
</para>
<para>Если <parameter>flags</parameter> не указан, то возвращаются
все доступные элементы.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Если параметр <parameter>flags</parameter> не передан, то
возвращаемый ассоциативный массив (<type>array</type>)
будет содержать следующие элементы:
<literal>dirname</literal>, <literal>basename</literal>,
<literal>extension</literal> (если есть) и <literal>filename</literal>.
</para>
<note>
<para>
Если <parameter>path</parameter> содержит больше одного расширения, то
<constant>PATHINFO_EXTENSION</constant> возвращает только последний и
<constant>PATHINFO_FILENAME</constant> удаляет только последнее расширение.
(смотрите пример ниже).
</para>
</note>
<note>
<para>
Если <parameter>path</parameter> не содержит расширения, то не будет
возвращён элемент <literal>extension</literal> (смотрите ниже второй пример).
</para>
</note>
<note>
<para>
Если <literal>basename</literal> параметра <parameter>path</parameter>
начинается с точки, то все последующие символы интерпретируются
как расширение файла (<literal>extension</literal>) и имя файла
<literal>filename</literal> будет пустым (смотрите третий пример).
</para>
</note>
<para>
Если указан параметр <parameter>flags</parameter>, будет возвращена
строка (<type>string</type>), содержащая указанный элемент.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования функции <function>pathinfo</function></title>
<programlisting role="php">
<![CDATA[
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
/www/htdocs/inc
lib.inc.php
php
lib.inc
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Пример с <function>pathinfo</function>, показывающий разницу между null
и отсутствием расширения</title>
<programlisting role="php">
<![CDATA[
<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);
$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
string(0) ""
Notice: Undefined index: extension in test.php on line 6
NULL
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Пример <function>pathinfo</function> для файла, начинающегося с точки</title>
<programlisting role="php">
<![CDATA[
<?php
print_r(pathinfo('/some/path/.test'));
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Array
(
[dirname] => /some/path
[basename] => .test
[extension] => test
[filename] =>
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>dirname</function></member>
<member><function>basename</function></member>
<member><function>parse_url</function></member>
<member><function>realpath</function></member>
</simplelist>
</para>
</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
-->