Manual do PHP
Anterior |  | Próxima

# urlencode

(PHP 3, PHP 4 )

urlencode -- Codifica uma URL

## Descrição

string urlencode ( string str)

Retorna uma string em que todos os caracteres não-alfanuméricos com exceção de `-_.` são substituidos com um sinal de porcento (`%`) siguido por dois digitos hexadecimais e espaços codificados como um sinal de (`+`). É codificada do mesmo jeito que dados vindos de um formulário WWW é codificado, isto é, da mesma maneira que `application/x-www-form-urlencoded`. Isto é diferente da codificação RFC1738 (veja rawurlencode()) nesta por razões historicas, espaços são codificados como sinais de mais(+). Esta função é conveniente para codificar uma string que será passada como parte de uma URL, como um meio de passar variáveis para a próxima pagina:

Exemplo 1. Exemplo urlencode()

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

Nota: Seja cuidadoso com variaveis que sejam iguais a entidades HTML. Coisas como &amp, &copy e &pound são interpretados pelo browser e a entidade atual é usada ao invés do nome de variavel desejado. Isto é um problema obvio que o W3C vem falando a todos a anos. A referrência esta aqui: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2. O PHP suporta que se mude o separador de argumentos para o ponto e vírgula sugerido pelo W3C através da diretiva de configuração arg_separator. Infelizmente a maior parte dos aplicativos não envia os dados neste formato. Um meio mais portável é usar &amp; ao invés de & como separador. Você não precisa mudar arg_separator para isto. Deixe como &, mas simplesmente codifique as suar URLs usando htmlentities(urlencode($data)).

Exemplo 2. Exemplo urlencode() e htmlentities()

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

Veja também urldecode(), htmlentities(), rawurldecode() e rawurlencode().

Anterior | Principal | Próxima
urldecode | Acima | Variáveis, Funções