1717 </methodsynopsis >
1818 <para >
1919 Функция <function >fnmatch</function > проверяет, совпадает ли название файла
20- или строка <parameter >filename</parameter > с шаблоном <parameter >pattern</parameter >,
21- который состоит из подстановочных знаков командной оболочки.
20+ или другая строка в аргументе <parameter >filename</parameter > с шаблоном <parameter >pattern</parameter >,
21+ который поддерживает подстановочные знаки командной оболочки.
2222 </para >
2323 </refsect1 >
2424
3030 <term ><parameter >pattern</parameter ></term >
3131 <listitem >
3232 <para >
33- Шаблон <parameter >pattern</parameter >, с которым нужно сопоставить. Часто аргумент
34- <parameter >pattern</parameter > будет содержать
35- подстановочные знаки вроде <literal >«?» </literal > и <literal >«*» </literal >.
33+ Шаблон <parameter >pattern</parameter >, с которым требуется сопоставить строку.
34+ В аргумент <parameter >pattern</parameter > часто включают
35+ подстановочные знаки наподобие <literal >'?' </literal > и <literal >'*' </literal >.
3636 <table >
3737 <title >
3838 Подстановочные знаки параметра <parameter >pattern</parameter >
5050 <literal >?</literal >
5151 </entry >
5252 <entry >
53- Вопросительный знак будет соответствовать любому отдельному символу.
54- Например, шаблон <literal >« file?.txt» </literal > будет соответствовать названиям
55- файлов <literal >« file1.txt» </literal > и <literal >« fileA.txt» </literal >,
56- но не будет соответствовать названию файла <literal >« file10.txt» </literal >.
53+ Вопросительный знак соответствует одному произвольному символу.
54+ Шаблон <literal >" file?.txt" </literal > совпадёт с названиями
55+ файлов <literal >" file1.txt" </literal > и <literal >" fileA.txt" </literal >,
56+ но не совпадёт с названем <literal >" file10.txt" </literal >.
5757 </entry >
5858 </row >
5959 <row >
6060 <entry >
6161 <literal >*</literal >
6262 </entry >
6363 <entry >
64- Звёздочка будет соответствовать нулю или нескольким символам .
65- Например, шаблон <literal >« foo*.xml» </literal > будет соответствовать названиям файлов
66- <literal >« foo.xml» </literal > или <literal >« foobar.xml» </literal >.
64+ Звёздочка соответствует нулю или большему количеству символов .
65+ Шаблон <literal >" foo*.xml" </literal > совпадёт и с названием файла
66+ <literal >" foo.xml" </literal >, и с названием <literal >" foobar.xml" </literal >.
6767 </entry >
6868 </row >
6969 <row >
7070 <entry >
7171 <literal >[ ]</literal >
7272 </entry >
7373 <entry >
74- Квадратные скобки создают диапазон кодовых точек кодировки ASCII или набор символов .
75- Например, шаблон <literal >« index.php[45]» </literal > будет соответствовать названиям файлов
76- <literal >« index.php4» </literal > и <literal >« index.php5» </literal >, но не будет
77- соответствовать названию файла <literal >« index.phpt» </literal >.
78- Диапазоны, которыми часто пользуются, — <literal >[0-9]</literal >, <literal >[a-z]</literal >
79- и <literal >[A-Z]</literal >. Разрешено указывать больше одного набора или диапазона одновременно,
80- например <literal >[0-9a-zABC]</literal >.
74+ Квадратные скобки задают диапазоны или наборы отдельных символов в границах кодовых точек стандарта ASCII .
75+ Шаблон <literal >" index.php[45]" </literal > совпадёт с названиями файлов
76+ <literal >" index.php4" </literal > и <literal >" index.php5" </literal >,
77+ но не совпадёт с названием <literal >" index.phpt" </literal >.
78+ Популярные символьные группы: <literal >[0-9]</literal >, <literal >[a-z]</literal >
79+ и <literal >[A-Z]</literal >. Квадратные скобки поддерживают комбинации диапазонов и наборов символов:
80+ <literal >[0-9a-zABC]</literal >.
8181 </entry >
8282 </row >
8383 <row >
8484 <entry >
8585 <literal >!</literal >
8686 </entry >
8787 <entry >
88- Восклицательный знак указывают для совпадения с символами,
89- которых нет в квадратных скобках. Например, шаблон <literal >« [!A-Z]*.html» </literal >
90- будет соответствовать названию файла <literal >« demo.html» </literal >,
91- но не будет соответствовать названию <literal >« Demo.html» </literal >.
88+ Восклицательный знак указывают для отрицания символов
89+ внутри квадратных скобок. Шаблон <literal >" [!A-Z]*.html" </literal >
90+ совпадёт с названием файла <literal >" demo.html" </literal >,
91+ но не совпадёт с названием <literal >" Demo.html" </literal >.
9292 </entry >
9393 </row >
9494 <row >
9797 </entry >
9898 <entry >
9999 Обратный слеш экранирует специальные символы.
100- Например, шаблон <literal >« Name\?» </literal > будет соответствовать строке
101- <literal >« Name?» </literal >, не будет соответствовать строке <literal >« Names» </literal >.
100+ Шаблон <literal >" Name\?" </literal > совпадёт со строкой
101+ <literal >" Name?" </literal >, не совпадёт со строкой <literal >" Names" </literal >.
102102 </entry >
103103 </row >
104104 </tbody >
111111 <term ><parameter >filename</parameter ></term >
112112 <listitem >
113113 <para >
114- Проверяемая строка. Функцией часто проверяют имена файлов,
114+ Проверяемая строка. Функцией чаще проверяют названия файлов,
115115 но также проверяют строки.
116116 </para >
117117 <para >
118- Среднеподготовленные посетители сайтов пользуются шаблонами
119- командной оболочки или хотя бы несложными формами
120- подстановок вроде <literal >«?»</literal > и <literal >«*»</literal >.
121- Поэтому для сопоставления поискового выражения, которое
122- в пользовательской части сайта вводят незнакомые с программированием
123- пользователи, вместо функции <function >preg_match</function > лучше пользоваться
124- функцией <function >fnmatch</function >.
118+ Среднестатистический пользователь сайта или приложения привык строить
119+ шаблоны в стиле командной оболочки, по крайней мере
120+ с простейшими подстановками наподобие <literal >'?'</literal > и <literal >'*'</literal >.
121+ Поэтому незнакомым с программированием пользователям проще вводить поисковые запросы
122+ с подстановочными символами, а не с регулярными выражениями, а программисту обрабатывать
123+ функцией <function >fnmatch</function >, а не <function >preg_match</function >.
125124 </para >
126125 </listitem >
127126 </varlistentry >
131130 <para >
132131 Параметр <parameter >flags</parameter > принимает
133132 комбинации следующих флагов, которые объединяют
134- <link linkend =" language.operators.bitwise" >двоичным оператором
135- ИЛИ (|)</link >.
133+ <link linkend =" language.operators.bitwise" >оператором | — побитового ИЛИ</link >.
136134 <table >
137135 <title >
138- Список возможных флагов для функции <function >fnmatch</function >
136+ Список флагов, которые поддерживает функция <function >fnmatch</function >
139137 </title >
140138 <tgroup cols =" 2" >
141139 <thead >
148146 <row >
149147 <entry ><constant >FNM_NOESCAPE</constant ></entry >
150148 <entry >
151- Отключить экранирование обратным слешем.
149+ Отключить экранирование обратным слешем — интерпретировать как обыкновенный символ .
152150 </entry >
153151 </row >
154152 <row >
155153 <entry ><constant >FNM_PATHNAME</constant ></entry >
156154 <entry >
157- Слеш в строке совпадает только со слешем в шаблоне .
155+ Исключить совпадение слеша в строке с подстановочными символами шаблона .
158156 </entry >
159157 </row >
160158 <row >
161159 <entry ><constant >FNM_PERIOD</constant ></entry >
162160 <entry >
163- Ведущая точка в строке должна точно совпадать с точкой в шаблоне .
161+ Исключить совпадение точки в начале строки с подстановочными символами шаблона .
164162 </entry >
165163 </row >
166164 <row >
167165 <entry ><constant >FNM_CASEFOLD</constant ></entry >
168166 <entry >
169- Совпадение без учёта регистра. Часть расширения GNU.
167+ Сопоставлять строки без учёта регистра. Флаг — часть расширения поведения функции в наборе инструментов GNU.
170168 </entry >
171169 </row >
172170 </tbody >
182180 <refsect1 role =" returnvalues" >
183181 &reftitle.returnvalues;
184182 <para >
185- Функция возвращает &true; при совпадении , иначе &false; .
183+ Функция возвращает &true; , если строка совпадает с шаблоном , иначе &false; .
186184 </para >
187185 </refsect1 >
188186
189187 <refsect1 role =" examples" >
190188 &reftitle.examples;
191189 <para >
192190 <example >
193- <title >Проверка соответствия названия цвета шаблону подстановки командной оболочки</title >
191+ <title >Проверка соответствия названия цвета шаблону с подстановочными символами командной оболочки</title >
194192 <programlisting role =" php" >
195193<![CDATA[
196194<?php
197195
198196if (fnmatch("*gr[ae]y", $color)) {
199197 echo "Какая-то форма серого цвета...";
200198}
201-
202- ?>
203199]]>
204200 </programlisting >
205201 </example >
@@ -210,8 +206,8 @@ if (fnmatch("*gr[ae]y", $color)) {
210206 &reftitle.notes;
211207 <warning >
212208 <para >
213- Функция пока недоступна на POSIX-несовместимых системах,
214- кроме Windows.
209+ Функция пока доступна только на POSIX-совместимых системах
210+ и в ОС Windows.
215211 </para >
216212 </warning >
217213 </refsect1 >
0 commit comments