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

JDownloader: Corrigir erro Skipped FFMpeg ao baixar do Youtube

Há tempos eu vinha tendo problemas ao baixar vídeos do Youtube.com. Quando instalei a versão 2 do JD, apareceu-me uma janela que eu não tinha visto antes:



Veja o erro que acontecia ao tentar baixar um vídeo do Youtube, na imagem abaixo:

Sem tanta necessidade do download, eu sempre deixei para depois, mas em um momento eu precisei, e muito, então resolvi pesquisar e vi em alguns fóruns, em inglês, que poderia ser algum problema na linha de comando na configuração do JDownloader para o uso do FFMpeg. Mas ao checar o painel de configurações, os comandos estavam certos, mas o caminho do arquivo binário do FFMpeg não estava lá, tinha apenas "null", ou seja, nulo.

Então, para corrigir, se este for o seu problema, encontre o caminho do FFMpeg no seu sistema, seja ele Windows ou Linux. No caso do Windows, o arquivo binário ffmpeg.exe pode estar diretamente no disco C(ou outra unidade onde o S. O. estiver instalado) ou em Arquivos de Programas, se não encontrar, tente fazer uma pesqu…

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…

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…