Files
php-doc-ru/reference/filesystem/functions/glob.xml
2025-06-16 11:35:09 +03:00

199 lines
6.6 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: bb9bfdfc5a4a8ffe27ab4edcfe0d8747a375e2f2 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.glob" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude">
<refnamediv>
<refname>glob</refname>
<refpurpose>Находит файловые пути, которые совпадают с шаблоном</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>array</type><type>false</type></type><methodname>glob</methodname>
<methodparam><type>string</type><parameter>pattern</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Функция <function>glob</function> ищет пути, которые совпали
с шаблоном <parameter>pattern</parameter> по правилам
функции glob() стандартной C-библиотеки libc, которые аналогичны
правилам стандартных командных оболочек.
</para>
<simpara>
Поведение функции в системах Unix и macOS определяется реализацией
функции glob() в системе. В ОС Windows реализация функции
соответствует определению 1003.2 стандарта POSIX для функции glob() и включает
расширение для обработки соглашения <literal>[!...]</literal>
для отрицания диапазона.
</simpara>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>pattern</parameter></term>
<listitem>
<para>
Шаблон. Параметр не раскрывает символы тильды и не подставляет параметры.
</para>
<para>
Специальные символы:
<itemizedlist>
<listitem>
<simpara>
<literal>*</literal> — Соответствует нулю или большему количеству символов.
</simpara>
</listitem>
<listitem>
<simpara>
<literal>?</literal> — Соответствует ровно одному символу (любому символу).
</simpara>
</listitem>
<listitem>
<simpara>
<literal>[...]</literal> — Соответствует одному символу из группы символов.
Символ соответствует символу, который не входит в группу,
если первый символ <literal>!</literal>.
</simpara>
</listitem>
<listitem>
<simpara>
<literal>{a,b,c}</literal> - Соответствует одной строке из группы
строк, разделённых запятой, когда указали флаг <constant>GLOB_BRACE</constant>.
</simpara>
</listitem>
<listitem>
<simpara>
<literal>\</literal> — Экранирует следующий символ,
кроме случаев, когда указали флаг <constant>GLOB_NOESCAPE</constant>.
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
Константа семейства <constant>GLOB_<replaceable>*</replaceable></constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает массив с совпадениями путей файлов или директорий,
пустой массив, если файлы не совпали, или &false;, если возникла ошибка.
Названия отсортируются в буквенно-цифровом порядке, если только
не указали флаг <literal>GLOB_NOSORT</literal>.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>
Способ подмены функцией <function>glob</function> функции <function>opendir</function> и дружественных функции
</title>
<programlisting role="php">
<![CDATA[
<?php
foreach (glob("*.txt") as $filename) {
echo "Размер файла $filename в байтах — " . filesize($filename) . "\n";
}
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Размер файла funclist.txt в байтах — 44686
Размер файла funcsummary.txt в байтах — 267625
Размер файла quickref.txt в байтах — 137820
]]>
</screen>
</example>
<example>
<title>
Пример с усложнённым шаблоном
</title>
<programlisting role="php">
<![CDATA[
<?php
foreach (glob("path/*/*.{txt,md}", \GLOB_BRACE) as $filename) {
echo "$filename\n";
}
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
path/docs/mailinglist-rules.md
path/docs/README.md
path/docs/release-process.md
path/pear/install-pear.txt
path/Zend/README.md
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.no-remote;
<note>
<simpara>
Функция недоступна в системах наподобие старой Sun OS.
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>opendir</function></member>
<member><function>readdir</function></member>
<member><function>closedir</function></member>
<member><function>fnmatch</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
-->