mirror of
https://github.com/php/doc-ru.git
synced 2026-03-26 00:32:15 +01:00
269 lines
8.8 KiB
XML
269 lines
8.8 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
|
||
-->
|