Descripción
string
urlencode ( string cadena )
Devuelve una cadena en la que todos los caracteres
no-alfanuméricos excepto -_. han sido
reemplazados con un signo de porcentaje (%)
seguido por dos dÃgitos hexadecimales y los espacios son
codificados como signos de suma (+). Esta es
la misma codificación usada en los datos publicados desde
un formulario WWW, es decir, el mismo mecanismo usado para el
tipo de medios
application/x-www-form-urlencoded. Este
mecanismo difiere de la codificación RFC1738 (vea
rawurlencode()) en que, por razones
históricas, los espacios son codificados como signos de
suma (+). Esta función es conveniente cuando se codifica
una cadena a ser usada como la parte de consulta de una URL, como
método práctico para pasar variables a la siguiente
página:
Ejemplo 1. Ejemplo de urlencode()
<?php echo '<a href="micgi?foo=', urlencode($entrada_usuario), '">'; ?>
|
|
Nota: Tenga cuidado con las variables que puedan coincidir con
entidades HTML. Secuencias como &, © y £
son procesadas por el navegador y la entidad real es usada en
lugar del nombre de variable deseado. Este es un problema obvio
sobre el cual el consorcio W3 ha estado alertando a las personas
por años. La referencia esta aquÃ: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2. PHP soporta la
modificación del separador de argumentos al punto-y-coma
sugerido por el W3C a través de la directiva .ini
arg_separator. Desafortunadamente, la mayorÃa de agentes
de usuario no enván datos de formularios en este formato
separado por punto-y-coma. Una forma más portable es usar
& en lugar de & como separador. No es necesario
modificar el valor arg_separator de PHP para esto. Déjelo
como &, y simplemente codifique sus URLs usando
htmlentities() o
htmlspecialchars().
Ejemplo 2. Ejemplo de urlencode() y
htmlentities()
<?php $cadena_query = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar); echo '<a href="micgi?' . htmlentities($cadena_query) . '">'; ?>
|
|
Vea también urldecode(),
htmlentities(),
rawurldecode() y
rawurlencode().