urlencode

(PHP 3, PHP 4, PHP 5)

urlencode -- Codifica como URL una cadena

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 &amp, &copy y &pound 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 &amp; 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().

Hosting by: hurra.com
Generated: 2007-01-26 18:01:08