PHP Handbuch
Zurück |  | Weiter

# urlencode

(PHP 3, PHP 4, PHP 5)

urlencode -- URL-kodiert einen String

## Beschreibung

string urlencode ( string str )

Gibt einen String zurück, in dem alle nicht alphanumerischen Zeichen bis auf `-_.` durch das Prozentzeichen (`%`) gefolgt von zwei Hexzeichen sowie Leerzeichen durch ein Pluszeichen (`+`) ersetzt werden. Genauso werden auch Daten kodiert, die über ein WWW-Formular gesendet werden, dies entspricht dem Media Type `application/x-www-form-urlencoded`. Die Umsetzung des Leerzeichens zum Pluszeichen (+) hat historische Gründe und stellt den Unterschied zur Kodierung nach RFC1738 (siehe rawurlencode()) dar, bei der das Leerzeichen als %20 kodiert wird. Die Funktion urlencode() ist sehr nützlich, um einen String zu kodieren, der im Queryteil einer URL verwendet werden soll. Der Queryteil ist eine bequeme Art, Variablen an die nächste Seite zu übergeben:

Beispiel 1. urlencode()-Beispiel

`<?php echo '<a href="mycgi?foo=', urlencode($userinput), '">'; ?>`

Beachten Sie: Seien Sie vorsichtig bei der Verwendung von Variablen, die HTML-Sonderzeichen enthalten. Zeichen wie &amp, &copy und &pound werden vom Browser geparst und das betreffende echte Zeichen statt des HTML-Namens verwendet. Dies ist eine offensichtliche Schwierigkeit, die das W3C seit Jahren zu verdeutlichen sucht. Die entsprechende Referenz finden Sie hier: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2. PHP lässt die Umstellung des Argument-Separators auf das W3C-empfohlene Semikolon mittels der .ini-Direktive arg_separator zu. Bedauerlicherweise senden die meisten User Agents Formulardaten nicht in diesem durch Semikolon getrennten Format. Ein möglicher Weg das zu umgehen, ist, &amp anstatt & als Separator zu verwenden. Sie brauchen dafür die PHP-Option arg_separator nicht zu ändern. Belassen Sie sie auf & und kodieren Sie dafür Ihre URL unter Verwendung von htmlentities() oder htmlspecialchars().

Beispiel 2. urlencode() und htmlentities()-Beispiel

`<?php $query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar); echo '<a href="mycgi?' . htmlentities($query_string) . '">'; ?>`

Siehe auch urldecode(), htmlentities(), rawurldecode() und rawurlencode().

Zurück | Zum Anfang | Weiter
urldecode | Nach oben | Funktionen zur Behandlung von Variablen