Skip to content

Commit ca5c8c5

Browse files
authored
Update using.xml to En
1 parent 40c84bc commit ca5c8c5

File tree

1 file changed

+22
-25
lines changed

1 file changed

+22
-25
lines changed

faq/using.xml

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<!-- EN-Revision: aab33d644359aba597e810e2fc0c0caa0d347c9c Maintainer: shein Status: ready -->
2+
<!-- EN-Revision: 1709768e97fce7848c62aa2bf988419527bd1e8e Maintainer: shein Status: ready -->
33
<!-- Reviewed: no -->
44
<chapter xml:id="faq.using" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
55
<title>Использование PHP</title>
@@ -12,7 +12,6 @@
1212
<qandaset>
1313

1414
<qandaentry xml:id="faq.using.parameterorder">
15-
<!-- TODO: Mention named arguments -->
1615
<question>
1716
<para>
1817
Я не могу запомнить порядок аргументов PHP-функций, они что, случайны?
@@ -29,6 +28,10 @@
2928
порядок <link linkend="book.strings">в строковых функциях</link> обратный,
3029
то есть аналогичен «<emphasis>стог, иголка</emphasis>».
3130
</para>
31+
<para>
32+
C PHP 8.0 <link linkend="functions.named-arguments">именованные аргументы</link>
33+
разрешили передачу аргументов по названию параметра и снизили значимость порядка параметров.
34+
</para>
3235
</answer>
3336
</qandaentry>
3437

@@ -42,10 +45,9 @@
4245
</question>
4346
<answer>
4447
<para>
45-
PHP предлагает множество <link linkend="language.variables.predefined">
46-
предопределённых переменных</link> наподобие суперглобальной переменной
47-
<varname>$_POST</varname>. Можно пройти по элементам переменной <varname>$_POST</varname> в цикле,
48-
поскольку это ассоциативный массив значений, которые пришли с POST-запросом.
48+
PHP предлагает множество <link linkend="language.variables.predefined">предопределённых переменных</link>
49+
наподобие суперглобальной переменной <varname>$_POST</varname>. Переменная <varname>$_POST</varname> поддерживает обход элементов в цикле,
50+
поскольку это ассоциативный массив значений, которые поступили в POST-запросе.
4951
Например, просто пройдёмся по элементам массива конструкцией &foreach;,
5052
проверим значения на пустоту (<function>empty</function>) и выведем.
5153
<programlisting role="php">
@@ -73,8 +75,6 @@ if (empty($empty)) {
7375
print "Пустых:\n"; var_dump($empty);
7476
exit;
7577
}
76-
77-
?>
7878
]]>
7979
</programlisting>
8080
</para>
@@ -83,25 +83,26 @@ if (empty($empty)) {
8383
</qandaentry>
8484

8585
<qandaentry xml:id="faq.using.addslashes">
86-
<!-- TODO Probably should mention not doing this... -->
8786
<question>
8887
<para>
89-
Необходимо преобразовать одинарные кавычки (') в одинарные кавычки,
90-
перед которыми идёт обратный слеш (\'). Как это можно сделать через
91-
регулярное выражение?
92-
Хотелось бы также преобразовать «"» в «\"», а «\» в «\\».
88+
Требуется заменить одинарные кавычки (') на кавычки с обратным слешем (\').
89+
Как это сделать через регулярное выражение? И тот же вопрос касается замены " на \" и \ на \\.
9390
</para>
9491
</question>
9592
<answer>
9693
<para>
97-
Предполагая, что это требуется для базы данных,
98-
используйте механизм экранирования, который идёт
99-
с базой данных. Например, вызывайте функцию
100-
<function>mysql_real_escape_string</function> с MySQL
101-
и функцию <function>pg_escape_string</function> с PostgreSQL.
102-
В предыдущих версиях PHP чаще пользовались функциями <function>addslashes</function>
94+
Задействуйте внутренний механизм экранирования базы данных,
95+
если речь идёт о базе данных. Например, вызывайте функцию
96+
<function>mysql_real_escape_string</function> в БД MySQL
97+
и функцию <function>pg_escape_string</function> в базе данных PostgreSQL.
98+
В предыдущих версиях PHP чаще вызывали функции <function>addslashes</function>
10399
и <function>stripslashes</function>.
104100
</para>
101+
<para>
102+
Экранирование значений вручную чревато ошибками и зависит от контекста.
103+
Лучше предпочесть API баз данных, которые поддерживают подготовленные запросы
104+
и привязку параметров, вместо построения запросов путём конкатенации экранированных строк.
105+
</para>
105106
</answer>
106107
</qandaentry>
107108

@@ -121,8 +122,6 @@ function myfunc($argument)
121122
$variable = 10;
122123
123124
echo "myfunc($variable) = " . myfunc($variable);
124-
125-
?>
126125
]]>
127126
</programlisting>
128127
Что происходит?
@@ -214,8 +213,6 @@ $headers = getallheaders();
214213
foreach ($headers as $name => $content) {
215214
echo "headers[$name] = $content<br />\n";
216215
}
217-
218-
?>
219216
]]>
220217
</programlisting>
221218
</para>
@@ -254,8 +251,8 @@ foreach ($headers as $name => $content) {
254251
<qandaentry xml:id="faq.using.iis.sharing">
255252
<question>
256253
<para>
257-
Windows: не удаётся с IIS-сервера получить доступ к файлам,
258-
к которым предоставлен общий доступ на другом компьютере.
254+
Windows: с IIS-сервера невозможно получить доступ к файлам,
255+
к которым предоставили общий доступ на другом компьютере.
259256
</para>
260257
</question>
261258
<answer>

0 commit comments

Comments
 (0)