-
Notifications
You must be signed in to change notification settings - Fork 50
Expand file tree
/
Copy pathurlencode.xml
More file actions
165 lines (158 loc) · 5.19 KB
/
urlencode.xml
File metadata and controls
165 lines (158 loc) · 5.19 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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 767338231c3e14c7be5399b8e2e0c3b60f7ae8dd Maintainer: sammywg Status: ready -->
<refentry xml:id="function.urlencode" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>urlencode</refname>
<refpurpose>URL-kodiert einen String</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>urlencode</methodname>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
</methodsynopsis>
<para>
Diese Funktion ist nützlich als einfache Möglichkeit, eine Zeichenkette zu
kodieren, die im Abfrageteil einer URL zur Übergabe von Variablen an die
nächste Seite verwendet werden soll.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
Der zu kodierende String.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Gibt einen String zurück, in dem alle nicht-alphanumerischen Zeichen außer
<literal>-_.</literal> durch ein Prozentzeichen (<literal>%</literal>)
gefolgt von zwei Hexadezimalwerten und Leerzeichen durch ein Plus
(<literal>+</literal>) ersetzt werden. Das Encoding geschieht auf dem
gleichen Wege, wie auch durch ein WWW-Formular gepostete Daten kodiert
werden - das entspricht der Auszeichnung des Dateityps
<literal>application/x-www-form-urlencoded</literal>. Diese Auszeichnung
unterscheidet sich von der Kodierung nach <link
xlink:href="&url.rfc;3986">RFC 3986</link> (siehe auch
<function>rawurlencode</function>) dadurch, dass aus historischen Gründen
das Leerzeichen als Pluszeichen (+) kodiert wird.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>urlencode</function>-Beispiel</title>
<programlisting role="php">
<![CDATA[
<?php
$userinput = 'Data123!@-_ +';
echo "BenutzerEingabe: $userinput\n";
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>
]]>
</programlisting>
&example.outputs;
<screen role="html">
<![CDATA[
BenutzerEingabe: Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B">
]]>
</screen>
</example>
</para>
<para>
<example>
<title><function>urlencode</function> und
<function>htmlentities</function>-Beispiel</title>
<programlisting role="php">
<![CDATA[
<?php
$foo = 'Data123!@-_ +';
$bar = "Nicht derselbe Inhalt wie $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: Nicht derselbe Inhalt wie 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>
Seien Sie vorsichtig beim Umgang mit Variablen, die HTML-Entities enthalten
könnten. Angaben wie &amp, &copy und &pound werden vom Browser
geparst und die eigentliche Entität wird anstelle des gewünschten
Variablennamens verwendet. Dies ist eine naheliegende Schwierigkeit, über
die das W3C bereits seit Jahren informiert. Die entsprechende Referenz
finden Sie hier: <link xlink:href="&url.argsep;">&url.argsep;</link>.
</para>
<para>
PHP unterstützt den Austausch des vom W3C empfohlenen Argument-Trenners
Semikolon durch einen selbstgewählten Trenner über die
arg_separator-Direktive in der php.ini. Leider senden die meisten
User-Agents Formulardaten nicht im standardkonformen semikolongetrennten
Format. Ein möglicher Weg, mit diesem Problem umzugehen, ist die Verwendung
von &amp; anstelle von & als Trennzeichen. Sie müssen dafür nicht
die php.ini-Direktive arg_separator verändern. Belassen Sie sie als &,
und verwenden Sie statt dessen für Ihre URLs die Funktionen
<function>htmlentities</function> oder <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
-->