(PHP 4, PHP 5, PHP 7)
urlencode — Codifica uma URL
$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 &, © e £ 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 & 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().