O "urlenconde" e caracteres especiais em PHP

Escrito por serm murmson | Traduzido por josé fabián
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
O "urlenconde" e caracteres especiais em PHP
Os dois pontos e as barras de um URL (endereço de uma página) são codificadas com a função "urlencode" (Ryan McVay/Photodisc/Getty Images)

A informação transmitida pelos computadores é codificada de muitas formas diferentes. As letras que lemos em um navegador web, por exemplo, geralmente são passadas através de várias codificações. A linguagem PHP possui uma função especial que converte os caracteres internamente para transmiti-los respeitando as normas da Internet.

Outras pessoas estão lendo

Caracteres especiais

A função "urlencode" do PHP aceita uma entrada em forma de cadeia de caracteres ASCII e a converte para um formato que respeite o tipo de dados "application/x-www-form-urlencoded" do MIME (Extensões Multifunção para Mensagens de Internet, em inglês). Este tipo de dados retém letras e números, além dos caracteres "-", "_" e ".". Todos os outros são convertidos para um código hexadecimal. Este formato é o mesmo no qual os sites aceitam entradas de dados. Com a função "urlencode", os espaços são codificados como sinais "+".

Hexadecimal

Hexadecimal é um formato que codifica valores numéricos em base 16. Além dos números 0-9, as letras de A a F são utilizadas, onde A vale 10, B vale 11 e assim por diante. Portanto, 10 em hexadecimal é igual a 16 em decimal. Esta codificação é amplamente usada em informática e permite mostrar números grandes com menos bytes. Cada um dos caracteres ASCII é associado com um número que geralmente é representado em hexadecimal. Por exemplo, o asterisco () é identificado com o número 42 em decimal, ou 2A (216 = 32, mais A = 10) em hexadecimal.

Codificando URLs

Se você salvar um URL em uma variável, poderá converter os caracteres especiais para os valores hexadecimais correspondentes usando "urlencode". Por exemplo, "$friends = 'http://www.friendster.com/'" armazenará o URL do Friendster na variável $friends. Em seguida, "$friencode = urlencode($friends)" armazenará a saída de urlencode na variável $friencode. Neste caso, os únicos caracteres convertidos serão os dois pontos e as barras. O URL codificado ficará assim: "http%3A%2F%2Fwww.friendster.com%2F". A função usa o símbolo "%" para indicar que um caractere foi codificado.

Rawurlencode

A função "urlencode" está relacionada intimamente com a função "rawurlencode". Ambas são baseadas em normas diferentes, estabelecidas pela IETF (Grupo de trabalho para a evolução da internet, em tradução livre). Uma das principais diferenças é que a função "rawurlencode" codifica os espaços como "%20" ao invés de usar o sinal "+". Além disso, "rawurlencode" não afeta o caractere de til (~). Ambas funções possuem as funções "decode" correspondentes ("urldecode" e "rawurldecode") que permitem converter o texto de volta para ASCII.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível