-
Notifications
You must be signed in to change notification settings - Fork 164
Expand file tree
/
Copy pathurlencode.xml
More file actions
169 lines (161 loc) · 5.1 KB
/
urlencode.xml
File metadata and controls
169 lines (161 loc) · 5.1 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
165
166
167
168
169
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 767338231c3e14c7be5399b8e2e0c3b60f7ae8dd Maintainer: jpauli Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.urlencode" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>urlencode</refname>
<refpurpose>Encode une chaîne en URL</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>urlencode</methodname>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
</methodsynopsis>
<para>
Cette fonction est utile lors de l'encodage d'une &string; à utiliser
dans la partie d'une URL, comme façon simple de passer des variables
vers la page suivante.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
La &string; à encoder.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne une chaîne dont les caractères non alphanumériques
(hormis <literal>-_.</literal>) sont remplacés par des séquences
commençant par un caractère pourcentage (<literal>%</literal>),
suivi de deux chiffres hexadécimaux. Les espaces sont
remplacés par des signes plus (<literal>+</literal>).
Ce codage est celui qui est utilisé pour poster des
informations dans les formulaires HTML. Le type MIME est
<literal>application/x-www-form-urlencoded</literal>.
Ce codage est différent de celui spécifié
dans la <link xlink:href="&url.rfc;3986">RFC 3986</link> (voir
<function>rawurlencode</function>) : pour des raisons historiques,
les espaces sont remplacés par des signes plus (<literal>+</literal>).
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>urlencode</function></title>
<programlisting role="php">
<![CDATA[
<?php
$userinput = 'Data123!@-_ +';
echo "UserInput: $userinput\n";
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>
]]>
</programlisting>
&example.outputs;
<screen role="html">
<![CDATA[
UserInput: Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B">
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Exemple avec <function>urlencode</function> et <function>htmlentities</function></title>
<programlisting role="php">
<![CDATA[
<?php
$foo = 'Data123!@-_ +';
$bar = "Not the same content as $foo";
echo "foo: $foo\n";
echo "bar: $bar\n";
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>
]]>
</programlisting>
&example.outputs;
<screen role="html">
<![CDATA[
foo: Data123!@-_ +
bar: Not the same content as Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B&bar=Not+the+same+content+as+Data123%21%40-_+%2B">
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Faites bien attention aux variables qui ressemblent à
des entités HTML, comme &amp;, &copy; et &pound;,
qui sont analysées par le client web et remplacées par leur
valeur. C'est un vrai problème qui a été montré par le W3C
depuis longtemps. La référence est ici :
<link xlink:href="&url.argsep;">&url.argsep;</link>.
</para>
<para>
PHP supporte le remplacement de séparateur d'arguments par un
point-virgule, comme recommandé par le W3C, grâce à
la directive <option>arg_separator</option> du fichier &php.ini;.
Malheureusement, la plupart des clients web
n'envoient pas leurs données de formulaire avec des points-virgules. Une
solution plus portable est d'utiliser <literal>&amp;</literal>
à la place de <literal>&</literal> comme
séparateur. Il n'y a alors pas à changer la directive
<option>arg_separator</option>. Laissez-la à &, mais encodez les URL
en utilisant <function>htmlentities</function> ou
<function>htmlspecialchars</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>urldecode</function></member>
<member><function>htmlentities</function></member>
<member><function>rawurlencode</function></member>
<member><function>rawurldecode</function></member>
<member><link xlink:href="&url.rfc;3986">RFC 3986</link></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
-->