BLOG CORPORATIVO
Artigos, scripts e dicas postados pelos colaboradores. Não são postados scritps relacionados à trabalhos feitos para clientes.
Problemas em acentos
Escrito por Edgar Serra em 22 de Novembro de 2009 às 21:08.
Arquivado em PHP Dicas.
Como todos devem saber o PHP depende muito do modo como o servidor é configurado. Boa parte dos servidores que usamos estão em outros países e por via de regra, temos alguns problemas quando trabalhos com conversão de caracteres de minúsculo para maiúsculo e vice-versa.

Esse problema se deve as configurações do servidor, que podem não estar setadas para pt_BR/portuguese, nesse caso tendo problemas principalmente com letras acentuadas, nesse caso você tem duas opções basicamente:
1 - Usar Funções Multibyte String, essa solução é perfeita, mas tem limitações, imagine que você deseja converter: "ÓLEO, ATENÇÃO" para "Óleo, atenção", se você usar strtolower e depois ucfirst, nosso exemplo vai se transformar em "Óleo, atenÇÃo", você pode substituir strtolower por mb_strtolower, nesse caso será impresso: "óleo, atenção", não existe 'substituto' para ucfirst, nesse caso você ficaria de mãos amarradas e teria que ir para a segunda opção;

2 - Usar o setlocale, como o que nos interessa é apenas a parte de alfabeto, nos interessa o LC_CTYPE, para resolver o problema que foi posto acima bastaria:
setlocale(LC_CTYPE,pt_BR);

Pronto! Note que você está definindo que o servidor DEVE usar a classificação de caracteres e conversão como Português do Brasil (pt_BR), opcionalmente você pode trocar pt_BR por portuguese que também é válido.

No caso da segunda opção, nem é necessário usar mb_strtolower, por strtolower funcionará perfeitamente. Note que não é recomendando você usar:
setlocale(LC_ALL,pt_BR);

Pois alterações futuras no PHP podem trazer efeitos não desejáveis para o seu script.
SOBRE O AUTOR
Edgar Serra é bacharel em Ciência da Computação, já trabalhou em algumas grandes empresas do Rio Grande do Sul, atualmente presta serviços on demand para empresas do estado, além de gerenciar projetos web, vindos de empresas parceiras, em geral.
ÚLTIMOS ARTIGOS
Calculando a idade diretamento na query
Problemas em acentos
Função simples para cálculo de frete a partir do site dos correios
Falhas de segurança em sistemas
Já viu um player em JavaScript?
Como saber sua posição da lista do google
Gerando sitemap dinâmicamente com PHP
Localizando registros duplicados no MySQL
Sessões perdidas no Internet Explorer
ARQUIVO DO BLOG
Home      |      Quem somos      |      Serviços      |      Blog corporativo      |      Orçamento      |      Contato

Copyright © 2004-2010 Edgarserra.com