Pular para o conteúdo principal

Convertendo array para UTF8 em PHP



Ultimamente tenho usado muito Ajax e com isso comecei a usar JSON para um melhor desempenho no tráfego dos projetos. Mas tive um problema com dados que estão em ISO-8859-1 pois o JSON só funciona com dados em UTF8. Mas para isso temos o utf8_encode() e o utf8_decode(), no PHP, que servem para codificar e decodificar, respectivamente, uma string em utf8. Até aí é uma maravilha. Mas o utf8_enconde não codifica um vetor inteiro. Se você tem uma tabela de dados inteira pra codificar em utf8, o que fazer? Vamos ver uma solução que bolei baseada em algumas pesquisas.

CONVERTENDO ARRAYS EM PHP
Pesquisando na Internet, mais precisamente no site oficial do PHP, php.net, encontrei uma pequena função para converter os arrays, só que não apresentou uma boa eficiência, causando muitas vezes um Warning. Então verificando melhor cheguei à conclusão a seguir que funcionou muito bem e com ótimo desempenho:

public static function arrayUtf8Enconde(array $array) {

//instancia um novo array
$novo = array();

//entar em um loop para verificar e converter cada indice do array
foreach ($array as $i => $value) {

//verifica se o indice é um array
if (is_array($value)) {

//aqui chama novamente o próprio método para verificar novamente(recursividade)
  $value = arrayUtf8Enconde($value);

} elseif (!mb_check_encoding($value, 'UTF-8')) {//se não for array, verifica se o valor está codificado como UTF-8
//aqui ele codifica
$value = utf8_encode($value);
}

//recoloca o valor no array
$novo[$i] = $value;
}

//retorna o array
return $novo;
}

Como podem ver, este é um método recursivo. O método mb_check_enconding() verifica se a string está codificada de acordo com o padrão informado no parâmetro, se não, ele codifica usando utf8_encode().

É isso aí, qualquer dúvida é só postar no comentário. Seu comentário é importante! Então até a próxima e fique na paz!

Postagens mais visitadas deste blog

Corrigindo erro ao instalar o Netbeans no Linux: UncaughtExceptionHandler in thread "main"

Ao tentar instalar o Netbeans 8.0.2 no Mageia 5, me deparei com um erro, onde ele não abria a tela de instalação, então rodei ele pelo terminal e tive a seguinte saída: 

$ ./netbeans-8.0.2-php-linux.sh
Configurando o instalador ...
Procurando por um JVM no sistema...
Extraindo dados para instalação...
Executando o assistente do instalador...

Exception: java.awt.HeadlessException thrown from the UncaughtExceptionHandler in thread "main"

Então após umas pesquisadas na Internet, cheguei à conclusão que era um problema no caminho do Java JDK que não está configurado corretamente, então basta executar o Netbeans informando o local do JDK:


./netbeans-8.0.2-linux.sh --javahome /usr/java/jdk1.8.0_25/
 No meu caso a localização do JDK foi "/usr/java/jdk1.8.0_25/', verifique o caminho da sua versão do JDK e também para sua versão do Linux. Acredito que esse erro possa acontecer no Windows em alguns casos, mas aí já é coisa pra um futuro tutorial.

Espero ter ajudado. Se te ajudou, com…

CSS: ID e Class, o que são e quando usar

Como muita coisa no temido CSS, muitas pessoas tem dúvidas em relação ao ID e Class, o que é normal. Então vamos ver de forma simples o que é cada um deles e quando usar.
ID é um identificador ou seletor para um elemento no HTML, e este deve ser único em todo o corpo do documento, e assim o CSS será aplicado para este elemento em específico. É algo que funciona como o número do documento de identidade, ou seja, é como devemos identificar os elementos como imagens, divs, parágrafos em nossa página. É também a forma mais correta para este fim, mas muitos usam classes – e funciona – mas não é indicado, e podem ter alguns problemas ao usar Javascript por exemplo, pois classe pode ser usada em vários elementos HTML da página, e o ID dever ser usado em apenas um. No CSS ele é identificado pelo sinal # (sharp) e no HTML o nome do ID fica no parâmetro id=”” sem o sinal #.
Exemplo: CSS #meuelemento{ color: #000; }
#meuOutroElemento{ color: #333; margin: auto; }
HTML
<div id=”meuelemento”&g…

Instalando placa de vídeo AMD Radeon no Kubuntu 14.04 e 14.10

Como sempre, é recomendado usarmos drivers livres em nossas distribuições, não pelo falo de serem livres, mas principalmente por terem sido melhores testados pela comunidade. Se sua placa de vídeo foi reconhecida pelo Kubuntu(ou qualquer outra distro) e usa o driver livre, recomendo que deixe-o assim, mas pode seguir este tutorial. Como todo fabricante, a AMD disponibiliza um drive para seu produto, e para controlar a placa de vídeo, existe o AMD Catalyst, que é quem faz o controle do sistema híbrido, uma interface na verdade, mas já vem tudo junto num pacote só!

Sistema Híbrido Intel/AMD Radeon
Há alguns anos vi um professor com um sistema híbrido em um notebook, é algo interessante, mas que pode trazer um pouco de dor de cabeça para usuários Linux, quando se trata de placas da AMD. Não vejo muitas reclamações de placas Nvidia em sistemas híbridos, o uso do Bumblebee parece ser simples e sem muito mistério. Não que instalar o AMD Catalyst seja coisa de outro mundo, mas acontece de oc…