-
Notifications
You must be signed in to change notification settings - Fork 80
Expand file tree
/
Copy pathaddcslashes.xml
More file actions
164 lines (150 loc) · 7.12 KB
/
addcslashes.xml
File metadata and controls
164 lines (150 loc) · 7.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 45042fef652f1b4e904e809fcbfcf31f6c60670b Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.addcslashes" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>addcslashes</refname>
<refpurpose>Экранирует строку слешами в стиле языка C</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>addcslashes</methodname>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam><type>string</type><parameter>characters</parameter></methodparam>
</methodsynopsis>
<para>
Функция добавляет обратные слеши перед символами, которые перечислили в параметре <parameter>characters</parameter>,
и возвращает заэкранированную строку.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
Строка, в которой требуется заэкранировать символы.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>characters</parameter></term>
<listitem>
<para>
Список символов для экранирования.
Отдельные управляющие символы наподобие перевода строки или возврата каретки функция заменяет в стиле языка C,
если параметр <parameter>characters</parameter> содержит последовательности символов <literal>\n</literal>, <literal>\r</literal> и аналогичные.
Остальные небуквенно-цифровые символы с ASCII-кодами ниже 32 и выше 126 функция преобразует
в восьмеричное представление.
Список символов для экранирования.
Функция заменит во входной строке управляющие символы по правилам языка C,
если параметр <parameter>characters</parameter> содержит последовательности символов наподобие <literal>\n</literal> и <literal>\r</literal>.
Остальные небуквенно-цифровые символы с ASCII-кодами ниже 32 и выше 126 функция преобразует
в восьмеричное представление.
</para>
<para>
Диапазон символов в аргументе <parameter>characters</parameter>
определяют правильными символами начала и конца диапазона, чтобы символы между начальным
и конечным значением диапазона образовывали правильную последовательность символов.
<example>
<title>Пример работы функции <function>addcslashes</function> с диапазонами</title>
<programlisting role="php">
<![CDATA[
<?php
echo addcslashes('foo[ ]', 'A..z');
// Выводит: \f\o\o\[ \]
// Функция заэкранирует заглавные и строчные английские буквы
// ... а также [\]^_`
?>
]]>
</programlisting>
</example>
Функция не создаст диапазон, если ASCII-код первого символа диапазона больше
последнего. Вместо этого функция заэкранирует только первый символ, последний символ
и точку. Значение ASCII-кода символов находят функцией
<function>ord</function>.
<example>
<title>Пример поведения функции <function>addcslashes</function> с символами в неправильном порядке</title>
<programlisting role="php">
<![CDATA[
<?php
echo addcslashes("zoo['.']", 'z..A'); // Выводит: \zoo['\.']
?>
]]>
</programlisting>
</example>
</para>
<para>
При экранировании символов 0, a, b, f, n, r, t и v соблюдают осторожность.
Функция преобразовывает эти символы в предопределённые управляющие последовательности языка C:
\0, \a, \b, \f, \n, \r, \t и \v. Эти последовательности работают и в других Си-подобных языках, включая PHP.
Поэтому с этими символами в аргументе <parameter>characters</parameter>
функция <function>addcslashes</function> иногда возвращает результат, который интерпретируется как управляющие последовательности,
если использовать вывод функции для генерации кода на этих языках.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает заэкранированную строку.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
Символы наподобие "\0..\37" в параметре <parameter>characters</parameter>
заэкранируют каждый символ с ASCII-кодами от 0 до 31.
<example>
<title>Пример использования функции <function>addcslashes</function></title>
<programlisting role="php">
<![CDATA[
<?php
$not_escaped = "PHP isThirty\nYears Old!\tYay to the Elephant!\n";
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
echo $escaped;
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>stripcslashes</function></member>
<member><function>stripslashes</function></member>
<member><function>addslashes</function></member>
<member><function>htmlspecialchars</function></member>
<member><function>quotemeta</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
-->