mirror of
https://github.com/php/doc-ru.git
synced 2025-08-15 23:42:35 +00:00
259 lines
8.4 KiB
XML
259 lines
8.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: d0cc084a925f112c156d0dbac12718b2bd8d4889 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>
|
||
<note>
|
||
<para>
|
||
Только в системах Windows символ <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>
|
||
<para>
|
||
<example>
|
||
<title>Пример использования <function>pathinfo</function> с разыменованием массива</title>
|
||
<para>
|
||
Параметр <parameter>flags</parameter> не является битовой маской.
|
||
Может быть предоставлено только одно значение.
|
||
Чтобы выбрать только ограниченный набор разобранных значений,
|
||
используйте деструктуризацию массива следующим образом:
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');
|
||
|
||
var_dump($basename, $dirname);
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
&example.outputs.similar;
|
||
<screen>
|
||
<![CDATA[
|
||
string(11) "lib.inc.php"
|
||
string(15) "/www/htdocs/inc"
|
||
]]>
|
||
</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
|
||
-->
|