Forum und email

urlencode

(PHP 4, PHP 5)

urlencode — Codifica como URL una cadena

Descripción

string urlencode ( string $cadena )

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.

Lista de parámetros

cadena

La cadena a ser codificada.

Valores retornados

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 en el » RFC 1738 (vea rawurlencode()) en que, por razones históricas, los espacios son codificados como signos de suma (+).

Ejemplos

Example#1 Ejemplo de urlencode()

<?php
echo '<a href="micgi?foo='urlencode($entrada_usuario), '">';
?>

Example#2 Ejemplo de urlencode() y htmlentities()

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

Notes

Note: 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í: » https://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ían 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().