Trabalhando com Unicode
PHP e Unicode
PHP 5 não dá suporte nativo às codificações Unicode. Porém, uma das grandes promessas para PHP 6 será a divisão do tipo string em 2: string e binary. O futuro tipo string será usado para representar textos em alguma codificação e será suportada a utilização de unicode. Já o tipo binary será usado para armazenar sequência de bytes, assim como é o tipo "string" atual.
Atualmente, se fizermos o seguinte código em PHP e salvarmos em UTF-8...
... o valor da variável $letra receberia o valor "A", a variável $sub receberia o valor "aç" e a variável $len receberia o tamanho 8.
Isso acontece porque o operador colchetes obtem o N-ésimo byte da string e não o N-ésimo símbolo. Da mesma forma, a função substr trabalha com bytes e não com símbolos. E a função strlen devolve o número de bytes e não o número de símbolos. Como o símbolo "ç" ocupa dois bytes em UTF-8, estas funções tem seu significado afetado.
Portanto, para trabalhar com textos em UTF-8, é preciso ferramentas externas que simulem as operações básicas sobre textos. Uma alternativa simples é usar a extenão PRCE para obter substring, já que a extensão já suporte codificação UTF-8.
Para um script PHP informar para o navegador que está utilizando a codificação UTF-8, basta usar a função header e informar o valor da diretiva Content-type com o valor adequado. Por exemplo:
Uma outra alternativa é simular o comportamento do cabeçalho HTTP através da tag HTML "meta":
PHP 5 não dá suporte nativo às codificações Unicode. Porém, uma das grandes promessas para PHP 6 será a divisão do tipo string em 2: string e binary. O futuro tipo string será usado para representar textos em alguma codificação e será suportada a utilização de unicode. Já o tipo binary será usado para armazenar sequência de bytes, assim como é o tipo "string" atual.
Atualmente, se fizermos o seguinte código em PHP e salvarmos em UTF-8...
<?php $texto = 'açAEIOU'; $letra = $texto[3]; $sub = substr($texto, 0, 3); $len = strlen($texto);
... o valor da variável $letra receberia o valor "A", a variável $sub receberia o valor "aç" e a variável $len receberia o tamanho 8.
Isso acontece porque o operador colchetes obtem o N-ésimo byte da string e não o N-ésimo símbolo. Da mesma forma, a função substr trabalha com bytes e não com símbolos. E a função strlen devolve o número de bytes e não o número de símbolos. Como o símbolo "ç" ocupa dois bytes em UTF-8, estas funções tem seu significado afetado.
Portanto, para trabalhar com textos em UTF-8, é preciso ferramentas externas que simulem as operações básicas sobre textos. Uma alternativa simples é usar a extenão PRCE para obter substring, já que a extensão já suporte codificação UTF-8.
Para um script PHP informar para o navegador que está utilizando a codificação UTF-8, basta usar a função header e informar o valor da diretiva Content-type com o valor adequado. Por exemplo:
<?php header('Content-Type: text/html; charset=UTF-8'); ...
Uma outra alternativa é simular o comportamento do cabeçalho HTTP através da tag HTML "meta":
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ...
ficou legalzinho
03/05/2010 1:01pm
(~14 anos atrás)
Sobre array já existe um artigo antigo:
http://phpbrasil.com/artigo/hY3cOW1zZuTt/arrays--parte-1
http://phpbrasil.com/artigo/5opX9LWqLIi/arrays--parte-2
http://phpbrasil.com/artigo/hY3cOW1zZuTt/arrays--parte-1
http://phpbrasil.com/artigo/5opX9LWqLIi/arrays--parte-2
17/03/2010 9:36pm
(~14 anos atrás)
Artigo explicado de forma bem "entendível", gostei muito.
Sugiro um deste tipo falando de array, seria legal.
Sugiro um deste tipo falando de array, seria legal.
17/03/2010 1:30pm
(~14 anos atrás)
Ótimo artigo!!!
Você explicou muito bem desde a base até ao topo, fazendo-o ficar fácil de compreender!!!
Parabéns!!!
Você explicou muito bem desde a base até ao topo, fazendo-o ficar fácil de compreender!!!
Parabéns!!!
13/03/2010 7:13pm
(~14 anos atrás)